c# - WPF:如何像在 css 中那样设置类的样式?

标签 c# wpf xaml

假设我有一个带有 4 个边框的 UserControl:

<Border />
<Border />
<Border />
<Border />

现在在我的资源中我可以去:

<Style TargetType="{x:Type Border}">
  ... change some properties here
</Style>

现在这一切都很好,但它将定位我的 UserControl 中的所有边框。 但是,如果我只想定位其中的一部分怎么办?

我想去:

<Border Class="Type1" />
<Border Class="Type1" />
<Border />
<Border />

然后去:

<Style TargetType="{x:Type Border}" TargetClass="Type1">
  ... change some properties here
</Style>

但这显然不存在,是否有其他方法可以实现我所追求的目标? 谢谢

最佳答案

虽然语法不像 CSS 中那样清晰,但它更加具体。

要以您的示例为基础,您正在寻找的是:

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

然后去:

<Style TargetType="{x:Type Border}" x:Key="Type1">
  ... change some properties here
</Style>

请记住,WPF 样式实际上并不像 CSS 那样级联。

更详细的样式引用: https://web.archive.org/web/20141210000517/http://dotnetslackers.com/articles/wpf/StylesResourcesAndControlTemplatesInWPF.aspx

关于c# - WPF:如何像在 css 中那样设置类的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5186773/

相关文章:

c# - 无法让 TextBlock 在 ListBox 内自动换行

c# - Asp.Net MVC 4 API : Download of docx failing in IE8

c# - "Another object on this page already uses ID ' XXXXXXX'

c# - WPF 媒体元素的背景图像

c# - WPF 在 MouseOver 上更改路径填充

c# - WPF Datagrid 多行验证

c# - XAML-动态在BitmapIcon中设置UriSource

c# - 编写 Windows 文件管理器应用程序的最佳编程语言

c# - 当我通过 jquery 发布时服务器验证不起作用

c++ - C# 与非托管 C++ 互操作性的续篇