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

Ada*_*Liu 3 xaml

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

Ger*_*ter 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>
Run Code Online (Sandbox Code Playgroud)

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