当子控件从父网格或边框转换出来时隐藏它

时间:2014-02-13 09:53:34

标签: xaml

假设我们有一个带有TextBlock的网格。现在,如果我执行一些RenderTransform,使TextBlock出现在网格之外,TextBlock仍然可见。我的问题很简单:如何自动隐藏网格外部的TextBlock部分? (换句话说,如何使网格像其孩子的视觉界限一样?)

1 个答案:

答案 0 :(得分:11)

您可以使用与父元素的边界匹配的剪贴蒙版:

<Border Height="200" Width="200" BorderThickness="1" BorderBrush="Black" >
    <Border.Clip>
        <RectangleGeometry Rect="0,0,200,200"></RectangleGeometry>
    </Border.Clip>
    <TextBlock Text="Foo">
        <TextBlock.RenderTransform>
            <TranslateTransform X="180"></TranslateTransform>
        </TextBlock.RenderTransform>
    </TextBlock>
</Border>

在WPF中,您无需手动执行此操作,只需设置ClipToBounds="True"

即可