gpt4 book ai didi

c# - 如何从 XAML 绑定(bind)或访问 C# 类中定义的颜色?

转载 作者:行者123 更新时间:2023-11-30 16:27:09 25 4
gpt4 key购买 nike

定义要在 .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>

最佳答案

您只能绑定(bind)到属性,不能绑定(bind)到字段。

为了从 XAML 进行绑定(bind),您需要将静态成员转换为属性。

完成后,您可以通过 x:Static Markup Extension 绑定(bind)到它们,即:

<Button Name="btnTwo" 
Background="{x:Static my:Constants.MyBlueBrush}"
Margin="0,132,0,85" />

(请注意,这也需要“MyProject”命名空间到“my”的 xmlns 映射。)

关于c# - 如何从 XAML 绑定(bind)或访问 C# 类中定义的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8156793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com