我不确定我需要在此处提供什么代码。
我有一个带有按钮的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.
}
是的,为什么不。 WPF是一个骗子的乐事。
您可以使用复选框代替第一个按钮。在“已检查”属性上,您可以更改其他按钮的颜色。现在,您希望它们都看起来像按钮。是不是很简单。只需重新设置Checkbox(ControlTemplate)的样式,使其看起来像Button。
有趣的是,所有这些都可以在XAML中完成,您不需要后面的代码。
[接下来,您说您想控制Froms中的外观更改。因此,这类似于主题构建器。我建议您阅读有关DynamicResources和ResourceDictionaries的内容。
我有一个带有按钮的xaml窗口。我有另一种形式按钮。是否可以让表单按钮更改背景其他按钮的颜色?
如果您的'带按钮的xaml窗口'是Windows,而'另一种形式,我还有另一个按钮'是usercontrol。您可以提出以下建议。
在用户控件中,您可以引用以下代码来更改父窗口的按钮背景。
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。