C# WPF 中的持久按钮颜色更改
Persistent button color changes in C# WPF
我正在使用 C# 和 WPF 设计一个简单的应用程序,其中包含多个按钮,这些按钮在单击时会改变颜色。
每个单独的按钮独立地更改颜色为红色(第 1 次单击)然后变为绿色(第 2 次单击)。
我正在寻找一种方法来使此更改在应用程序运行之间保持不变。
换句话说,如果 1 个按钮设置为绿色,1 个按钮设置为红色,我希望它们保持颜色(除非我更改它),无论我打开和关闭应用程序多少次。我可以使用的代码示例非常受欢迎。非常感谢任何帮助或代码示例。谢谢!
这是 WPF:
<Button x:Name="btn0" Focusable="False" Margin="277,100,173,148" Click="btn0_Click" Content="access"/>
<Button x:Name="btn1" Focusable="False" Margin="189,100,253,148" Click="btn1_Click" Content="access"/>
这是代码(我知道它有点乱):
namespace WpfApp7
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private bool _IsOn;
public bool IsOn
{
get
{
return _IsOn;
}
set
{
_IsOn = value;
btn0.Background = _IsOn ? Brushes.Green : Brushes.Red;
}
}
private void btn0_Click(object sender, RoutedEventArgs e)
{
IsOn = !IsOn;
}
private bool _IsOn1;
public bool IsOn1
{
get
{
return _IsOn1;
}
set
{
_IsOn1 = value;
btn1.Background = _IsOn1 ? Brushes.Green : Brushes.Red;
}
}
private void btn1_Click(object sender, RoutedEventArgs e)
{
IsOn1 = !IsOn1;
}
}
}
首先你需要在你的项目设置中添加一个属性:
您可以输入颜色名称或十六进制值 ("#FF007CE4"
)
然后将颜色绑定到 属性:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
xmlns:properties="clr-namespace:WpfApplication1.Properties"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Name="button" Width="100" Height="30" Background="{Binding Source={x:Static properties:Settings.Default}, Path=Color1, Mode=TwoWay}" Click="button_Click" />
</Grid>
</Window>
设置颜色:
private void button_Click(object sender, RoutedEventArgs e)
{
if(Properties.Settings.Default.Color1 == "White")
{
Properties.Settings.Default.Color1 = "Black";
}
else
{
Properties.Settings.Default.Color1 = "White";
}
}
编辑:
要保存您需要的颜色更改:
Properties.Settings.Default.Save();
我正在使用 C# 和 WPF 设计一个简单的应用程序,其中包含多个按钮,这些按钮在单击时会改变颜色。
每个单独的按钮独立地更改颜色为红色(第 1 次单击)然后变为绿色(第 2 次单击)。
我正在寻找一种方法来使此更改在应用程序运行之间保持不变。 换句话说,如果 1 个按钮设置为绿色,1 个按钮设置为红色,我希望它们保持颜色(除非我更改它),无论我打开和关闭应用程序多少次。我可以使用的代码示例非常受欢迎。非常感谢任何帮助或代码示例。谢谢!
这是 WPF:
<Button x:Name="btn0" Focusable="False" Margin="277,100,173,148" Click="btn0_Click" Content="access"/>
<Button x:Name="btn1" Focusable="False" Margin="189,100,253,148" Click="btn1_Click" Content="access"/>
这是代码(我知道它有点乱):
namespace WpfApp7
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private bool _IsOn;
public bool IsOn
{
get
{
return _IsOn;
}
set
{
_IsOn = value;
btn0.Background = _IsOn ? Brushes.Green : Brushes.Red;
}
}
private void btn0_Click(object sender, RoutedEventArgs e)
{
IsOn = !IsOn;
}
private bool _IsOn1;
public bool IsOn1
{
get
{
return _IsOn1;
}
set
{
_IsOn1 = value;
btn1.Background = _IsOn1 ? Brushes.Green : Brushes.Red;
}
}
private void btn1_Click(object sender, RoutedEventArgs e)
{
IsOn1 = !IsOn1;
}
}
}
首先你需要在你的项目设置中添加一个属性:
"#FF007CE4"
)
然后将颜色绑定到 属性:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
xmlns:properties="clr-namespace:WpfApplication1.Properties"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Name="button" Width="100" Height="30" Background="{Binding Source={x:Static properties:Settings.Default}, Path=Color1, Mode=TwoWay}" Click="button_Click" />
</Grid>
</Window>
设置颜色:
private void button_Click(object sender, RoutedEventArgs e)
{
if(Properties.Settings.Default.Color1 == "White")
{
Properties.Settings.Default.Color1 = "Black";
}
else
{
Properties.Settings.Default.Color1 = "White";
}
}
编辑:
要保存您需要的颜色更改:
Properties.Settings.Default.Save();