是否可以通过单击另一个按钮来更改VS中的wpf按钮?

时间:2019-11-26 05:21:02

标签: wpf button colors

我不确定我需要在此处提供什么代码。

我有一个带有按钮的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. 
        }

2 个答案:

答案 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;
    }

enter image description here

如果要更改其他Windows按钮背景,可以直接通过'name'属性更改buttonusercontrol.Background。