WPF围绕控件创建自定义边框

时间:2013-07-29 13:54:01

标签: wpf user-controls controltemplate

我想在某些控件周围创建一个简单的边框来创建一个风格化的面板。我已经围绕一个控件创建了边框,但是现在我想要创建它,以便我可以在整个应用程序中的任何其他控件上重复使用它。我已经创建了一个用户控件来执行此操作,但我无法让用户控件调整大小到内容。有没有办法在XAML中做同样的事情,例如在Resources.xaml中使用ControlTemplate?

<Border Background="LightGray" 
            BorderBrush="DarkGray" 
            BorderThickness="1" 
            ClipToBounds="True"
            Opacity="0.80">
        <Border Background="#25FFFFFF" 
                BorderBrush="Black" 
                BorderThickness="1" 
                Margin="-2">
            <Border.Effect>
                <DropShadowEffect ShadowDepth="0" BlurRadius="10"/>
            </Border.Effect><!--Any Control - Insert TextBlock, Button, ContentPresenter -->
     </Border>
    </Border>

1 个答案:

答案 0 :(得分:1)

如果我理解正确,并且边框没有提供任何功能值,那么它只是您想要应用于某些控件的视觉装饰,您可能需要考虑Adorner

Adorner的一个用途是将视觉叠加应用于UIElements,这听起来像是你的目标。该MSDN文章还提供了一个示例,简单的搜索将产生大量自定义Adorner示例。