2017-01-23 73 views
0

我已經創建了一個usercontrol,它有一些控件在視圖外,但是隻要動畫顯示它們就可以看到它們。動畫正在改變它們的偏移,所以它們慢慢出現。現在,當我將我的用戶控件放在某個視圖上時,那些我不想看到的控件是可見的。我綁定使用Grid,GridView,Canvas ...但每次我都可以看到這些控件。c#uwp cut usercontrol

我需要4行我的usercontrols,才能調整大小。而這個問題使一些用戶控件重疊在一起。

這裏是我怎麼也得讓他們在網:

<Grid x:Name="gridDown" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 

     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="25*" /> 
      <ColumnDefinition Width="25*" /> 
      <ColumnDefinition Width="25*" /> 
      <ColumnDefinition Width="25*" /> 
     </Grid.ColumnDefinitions> 

     <local:MyUserControl x:Name="myControl1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="0"/> 
     <local:MyUserControl x:Name="myControl2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="1"/> 
     <local:MyUserControl x:Name="myControl3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="2"/> 
     <local:MyUserControl x:Name="myControl4" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="3"/> 

</Grid> 

如何顯示我的用戶的唯一核心部分?如何隱藏我不想看到的其他控件?什麼控制是最好的呢?

+0

你是如何實現你的UserControl的?請與我們分享[mcve]。 –

回答

1

要控制顯示內容,您需要告訴它在哪裏設置要顯示的限制。在WPF中有幫助ClipToBounds property,但不幸的是這在UWP中不可用,所以你需要自己設置'Clip'屬性。

所以,如果你的頁面看起來像這樣

<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> 
    <local:MyControl/> 
    <local:MyControl/> 
    <local:MyControl/> 
</StackPanel> 

而且你的控制XAML看起來像這樣

<Grid Height="50" Width="100"> 
    <Grid.Clip> 
     <RectangleGeometry Rect="0 0 100 50"/> 
    </Grid.Clip> 
    <Grid.Resources> 
     <Storyboard x:Name="ShowRedBit"> 
      <DoubleAnimation Storyboard.TargetProperty="Rectangle.RenderTransform.(CompositeTransform.TranslateX)" 
          Storyboard.TargetName="RedBit" 
          Duration="0:0:2" 
        To="0"/> 
     </Storyboard> 
    </Grid.Resources> 
    <Button HorizontalAlignment="Center" Click="Button_Click">show red</Button> 
    <Rectangle Fill="Red" Height="50" Width="50" x:Name="RedBit" RenderTransformOrigin="0.5,0.5" > 
     <Rectangle.RenderTransform> 
      <CompositeTransform TranslateX="-100"/> 
     </Rectangle.RenderTransform> 
    </Rectangle> 
</Grid> 

你可以看到,我已經手動設置clip屬性與控件的大小相同。

this question的答案還顯示了一些其他方法,包括動態設置它的方法。