c# - 在 WPF 的静态资源中存储具有内容的元素

标签 c# wpf xaml

所以我想在多个地方使用这个边框,但我不想多次复制/粘贴它。我将如何在 <Window.Resources> 中定义它?这样我就可以引用它了?

    <Border BorderThickness="0,0,0,1.5" Margin="5" Padding="0">
        <Border.BorderBrush>
            <LinearGradientBrush StartPoint="0,1" EndPoint="1,0" Opacity="0.7">
                <GradientStop Offset="0.2" Color="Black"/>
                <GradientStop Offset="0.5" Color="White"/>
                <GradientStop Offset="0.8" Color="Black"/>
            </LinearGradientBrush>
        </Border.BorderBrush>
    </Border>

感谢您的帮助...

最佳答案

在资源中,您可以保留样式,并且可以将该样式应用于窗口/用户控件中的任何控件。所以你可以这样做

<Style x:Key="BorderStyle" TargetType="{x:Type Border}">
    <Setter Property="BorderThickness" Value="0,0,0,1.5" />
    <Setter Property="Margin" Value="5" />
    <Setter Property="Padding" Value="0" />
    <Setter Property="BorderBrush">
        <Setter.Value>
            <LinearGradientBrush StartPoint="0,1" EndPoint="1,0" Opacity="0.7">
                <GradientStop Offset="0.2" Color="Black"/>
                <GradientStop Offset="0.5" Color="White"/>
                <GradientStop Offset="0.8" Color="Black"/>
            </LinearGradientBrush>
        </Setter.Value>
    </Setter>
</Style>

并且可以像这样使用它

<Border Style="{StaticResource BorderStyle}" />

关于c# - 在 WPF 的静态资源中存储具有内容的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43991854/

相关文章:

c# - MenuFlyoutItem.KeyboardAccelerators 触发 Invoked 事件两次

C# 设计器流程图应用程序 - 怎么样?

c# - 如何在不定义目标表的情况下使用 BulkCopy

c# - 网络服务代理设置

wpf - 如何在 WPF TreeView 中突出显示整行

c# - 将项目添加到 WPF ListView 中的列

c# - Winform webbrowser 自定义字体不显示

wpf - 使用 MVVM 管理复杂的 UI

wpf - 绑定(bind)到 TreeViewItem.IsExpanded。为什么这行得通?

wpf - 如何增加组合框显示项目的填充?