我正在使用Silverlight,最终使用Silverlight作为手机。
我要做的是创建一个包含子控件的带边框容器。当超出网格控件的范围时,子控件不应该是可见的。
这可能吗?我知道我可以从路径创建剪辑,但这是唯一的方法。
我确实使用了一个滚动容器,它看起来很有用......
这是xaml。我期待的是在应用程序运行时第二个按钮不可见。
<Grid x:Name="LayoutRoot" Background="White" >
<Grid HorizontalAlignment="Left" VerticalAlignment="Top" Height="197" Width="241" d:LayoutOverrides="HorizontalAlignment, VerticalAlignment">
<Button Content="Button" Margin="25,42,101,81"/>
<Button Content="Button" Height="76" Margin="25,0,63,-83" VerticalAlignment="Bottom"/>
</Grid>
</Grid>
答案 0 :(得分:2)
使用UIElement.ClipToBounds
http://msdn.microsoft.com/en-us/library/system.windows.uielement.cliptobounds.aspx
<Grid ClipToBounds="True">
...
</Grid>
答案 1 :(得分:0)
因为您似乎要问的是Grid
控件默认是如何工作的,例如:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<DockPanel Margin="50" Background="Azure" >
<Grid>
<TextBlock>The only part of this control that gets rendered is that which is inside the bounds of the Grid.</TextBlock>
</Grid>
</DockPanel>
</Page>
我只能假设你在问别的东西。但是什么?
答案 2 :(得分:0)
我找到了一个解决方案但又喜欢使用其他解决方案。我使用了一个scrollviewer并隐藏了滚动条。这似乎是一个沉重的解决方案,但暂时会起作用。当我将它移到Windows Phone 7时,我肯定需要找到更轻的重量。
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" mc:Ignorable="d"
x:Class="SilverlightApplication2.MainPage"
Width="640" Height="480">
<Grid x:Name="LayoutRoot" Background="White" >
<ScrollViewer x:Name="scrollViewer" Margin="0,0,158,0" VerticalScrollBarVisibility="Disabled" Height="123" VerticalAlignment="Top">
<Grid x:Name="grid" VerticalAlignment="Top" MaxWidth="169" MaxHeight="145" Height="141" RenderTransformOrigin="0.5,0.5">
<Grid.RenderTransform>
<CompositeTransform/>
</Grid.RenderTransform>
<Button Content="Button" Margin="25,42,0,60" HorizontalAlignment="Left" Width="71"/>
<Button Content="Button" Height="76" Margin="25,0,0,-83" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="81"/>
</Grid>
</ScrollViewer>
</Grid>