如何从XAML中绑定或访问c#类中定义的颜色
本文关键字:定义 颜色 访问 XAML 绑定 | 更新日期: 2023-09-27 18:14:57
定义一个对象在。cs和。xaml文件中使用的正确方法是什么?例如,我在"constants.cs"类中定义了自定义颜色和笔刷:
using System.Windows.Media;
namespace MyProject
{
public static class Constants
{
public static Color MyBlue = Color.FromArgb(255, 35, 97, 146);
public static SolidColorBrush MyBlueBrush = new SolidColorBrush(MyBlue);
}
}
,我想在。xaml或。cs文件中使用MyBlue或MyBlueBrush。
我可以像这样在。cs文件中设置颜色:
namespace MyProject
{
public partial class MyColorWindow : Window
{
public MyColorWindow()
{
InitializeComponent();
btnOne.Background = Constants.MyBlueBrush;
}
}
}
但是我如何在XAML文件中得到它呢?例如,我在下面的代码中添加什么来访问MyBlueBrush?
<Window x:Class="MyProject.MyColorWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MyColorWindow" Height="300" Width="300">
<Grid>
<Button Name="btnOne" Background="Purple" Margin="0,32,0,185" />
<Button Name="btnTwo" Background="Orange" Margin="0,132,0,85" /> <!-- I want this background to be MyBlueBrush too -->
</Grid>
</Window>
只能绑定属性,不能绑定字段。
为了从XAML绑定,您需要将静态成员转换为属性。
一旦你这样做了,你可以通过x:静态标记扩展绑定到它们,即:<Button Name="btnTwo"
Background="{x:Static my:Constants.MyBlueBrush}"
Margin="0,132,0,85" />
(注意,这也需要将"MyProject"名称空间映射为"my")