Silverlight 4 边框裁剪

4

在Silverlight 4中,是否可以创建一个带有圆角的边框来裁剪其任何子UI元素?目前,我尝试通过将按钮设置为边框控件的子元素来实现,但是当我设置边框的圆角以创建圆角时,按钮并没有被裁剪。

1个回答

4

请查看CodePlex上的Expression Blend示例中的ClippingBehavior。它是一个Blend行为,因此要添加它,您必须从Blend SDK引用System.Windows.Interactivity.dll,并在Blend中将该行为拖放到元素上或在XAML中添加它:

<UserControl x:Class="MyApplication.MainPage"
    ...other xmlns imports...
    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
    xmlns:samples="clr-namespace:Expression.Samples.Interactivity;assembly=Expression.Samples.Interactivity"
    >

    <Border>
        <i:Interaction.Behaviors>
            <samples:ClippingBehavior CornerRadius="15"/>
        </i:Interaction.Behaviors>
        <!-- content to be clipped goes here -->
    </Border>
</UserControl>

这是一种简单且可重复使用的方法,可将圆角/裁剪效果添加到任何UI元素中。

通常情况下,使用XAML片段时缺少导入,这可能会导致本来可能很好的答案变得不那么好。 - Luke Puplett
1
已更新相关的xmlns导入,并修复了来自Expression Blend Samples项目的ClippingBehavior源链接。 - Dan Auclair
你确定已经将...content...放在正确的位置了吗?我得到了一个编译器错误:无法将类型为“Border”的值添加到类型为“BehaviorCollection”的集合或字典中。如果我试图将另一个边框放在裁剪边框内部,就会出现这个错误。 - Maxim V. Pavlov
@MaximV.Pavlov,我相信你是对的。我已经编辑了答案。 - Drew Noakes
嗨,我一直收到“错误1:无法将类型为'ClippingBehavior'的值添加到类型为'BehaviorCollection'的集合或字典中。” 我该怎么办? - Peter Lee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接