我不确定我需要在此处提供什么代码。
我有一个带有按钮的xaml窗口。在另一种形式中,我还有另一个按钮。表单按钮可以更改另一个按钮的背景颜色吗?
谢谢。
<Button x:Name="_12" Content="12" HorizontalAlignment="Left" Height="109" VerticalAlignment="Top" Width="51" Grid.ColumnSpan="3" Margin="50,1,0,0" Click="Button_Click" Background="#FF40EB1D"/>
private void Button_Click(object sender, RoutedEventArgs e)
{
_12.Background = "red"; // This is just pseudo code for what I want.
}
答案 0 :(得分:1)
是的,为什么不呢? WPF是骗子的乐趣。
您可以使用复选框代替第一个按钮。在“已检查”属性上,您可以更改其他按钮的颜色。现在,您希望它们都看起来像按钮。是不是很简单。 只需重新设置Checkbox(ControlTemplate)的样式,使其看起来像Button。
有趣的是,所有这些都可以在XAML内完成,而您不需要后面的代码。
接下来,您说要控制Froms中外观的变化。因此,这类似于主题构建器。我建议您阅读有关DynamicResources和ResourceDictionaries的内容。
答案 1 :(得分:0)
我有一个带有按钮的xaml窗口。我有另一种形式 按钮。是否可以让表单按钮更改背景 其他按钮的颜色?
如果您的“带有按钮的xaml窗口” 是Windows,而“另一个表单,我还有另一个按钮” 是用户控件。您可以提出以下建议。
在用户控件中,可以引用以下代码来更改父窗口的按钮背景。
BtnWindowsForm parentWindow = (BtnWindowsForm)Window.GetWindow(this);
parentWindow.button.Background = Brushes.Red;
此外,您还可以使用“窗口窗体”按钮中的代码来更改用户控件的按钮背景。
<Button x:Name="button" Content="BtnWindowsForm Button" Click="Button_Click"/>
<local:BtnUsercontrol x:Name="btnUsercontrol" Height="327"></local:BtnUsercontrol>
private void Button_Click(object sender, RoutedEventArgs e)
{
//by the 'name' property directly.
btnUsercontrol.buttonusercontrol.Background = Brushes.Blue;
}
如果要更改其他Windows按钮背景,可以直接通过'name'属性更改buttonusercontrol.Background。