作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想扩展 System.Windows.Media.Brushes
类中的颜色数量,这样我就可以与新画笔的字符串名称进行绑定(bind)。
喜欢:value="myRed"
。
我使用 C#、.NET 4.5.2、VS2015、Windows 7。
最佳答案
这是不可能的,因为 System.Drawing.Brushes
类是密封的
。这意味着它不能继承,因此不能扩展。
你最好创建一个包含你的颜色的资源字典:
<ResourceDictionary ... >
<!-- Declare your colours here. -->
<SolidColorBrush x:Key="MyColour">#ffffff</SolidColorBrush>
</ResourceDictionary>
然后将该词典包含在您的 App.xaml
中:
<Application ... >
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- You may need to include more than one resource dictionary. -->
<ResourceDictionary Source="pack://application:,,,/Your.Project;component/Path/To/Dictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
您可以像这样在代码隐藏中获取这些资源:
Brush myColour = (Brush)Application.Current.FindResource("MyColour");
在我看来,这是扩展现有 Brushes
类的更好方法,因为在您的 代码和 代码之间有明显的区别.NET 代码。不仅如此,将您的颜色放入资源字典中可以促进跨项目的重用,并且资源可以轻松扩展并更能适应不断变化的需求。
您可以在 documentation 中找到更多关于资源字典的信息.
关于c# - 如何增加刷子的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39866795/
我是一名优秀的程序员,十分优秀!