Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#WPF中持续的按钮颜色变化_C#_Wpf_Button_Boolean_Persistent Data - Fatal编程技术网

C#WPF中持续的按钮颜色变化

C#WPF中持续的按钮颜色变化,c#,wpf,button,boolean,persistent-data,C#,Wpf,Button,Boolean,Persistent Data,我正在用C#和WPF设计一个简单的应用程序,其中有多个按钮,单击时可以更改其颜色 每个单独的按钮分别将颜色更改为红色(第一次单击)和绿色(第二次单击) 我正在寻找一种方法,使这些更改在应用程序运行之间保持不变。 换句话说,如果1个按钮被设置为绿色,1个按钮被设置为红色,我希望他们保持他们的颜色(除非我改变它),无论我打开和关闭应用程序多少次。我可以使用的代码示例非常受欢迎。非常感谢您的帮助或代码示例。谢谢大家! 这是WPF: <Button x:Name="btn0" Focusa

我正在用C#和WPF设计一个简单的应用程序,其中有多个按钮,单击时可以更改其颜色

每个单独的按钮分别将颜色更改为红色(第一次单击)和绿色(第二次单击)

我正在寻找一种方法,使这些更改在应用程序运行之间保持不变。 换句话说,如果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"/>

首先,需要将“转到”添加到项目设置并添加属性: 您可以输入颜色名称或十六进制值(
“#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>
编辑:

要保存所需颜色的更改,请执行以下操作:

Properties.Settings.Default.Save();

首先,需要将“转到”添加到项目设置并添加属性: 您可以输入颜色名称或十六进制值(
“#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>
编辑:

要保存所需颜色的更改,请执行以下操作:

Properties.Settings.Default.Save();

如果您需要持久状态,请在退出时保存(应用程序外部的某个位置)当前值,并在下一次运行时读取和还原值在wpf中有一个
ToggleButton
,请使用其
IsChecked
并更改颜色。以某种方式使用绑定和序列化/反序列化源代码(请参阅)是实现所需的正确方法。如果需要持久状态,请在退出时保存(应用程序外部的某个位置)当前值,并在下一次运行时读取和还原值在wpf中有一个
切换按钮
,请使用其
IsChecked
并更改颜色。以某种方式使用绑定和序列化/反序列化源代码(请参阅)是实现所需功能的正确方法。您还可以将属性类型从
string
更改为
System.Windows.Media.SolidColorBrush
,以继续使用
brush.Red
。您的回答帮助很大。我正在寻找一种方法来保存此设置,而不实际编写序列化/反序列化。如果我想对(比方说)10个按钮使用此方法,我是否必须进行10个单独的设置?根据这一点,您可以通过编程方式添加属性
foreach(此.Controls.OfType()中的var按钮){AddProperty(button.Name);}
您还可以将属性类型从
string
更改为
System.Windows.Media.SolidColorBrush
,以继续使用
brush.Red
。您的回答帮助很大。我正在寻找一种方法来保存此设置,而不实际编写序列化/反序列化。如果我想对(比方说)10个按钮使用此方法,我是否必须进行10个单独的设置?根据这一点,您可以通过编程方式添加属性
foreach(此.Controls.OfType()中的var按钮){AddProperty(button.Name);}