我想扩展System.Windows.Media.Brushes
类中的颜色数,因此我可以使用新Brush的字符串名称进行绑定。
赞:value="myRed"
。
我使用C#,. NET 4.5.2,VS2015,Windows 7。
答案 0 :(得分:3)
这是不可能的,因为System.Drawing.Brushes
类是sealed
。这意味着它不能继承,因此无法扩展。
您最好创建一个包含颜色的资源字典:
<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 < / strong>代码。不仅如此,在资源字典中使用您的颜色可以促进项目之间的重用,并且可以轻松扩展资源并更加适应不断变化的需求。
您可以在documentation中找到有关资源词典的更多信息。