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

问题描述 投票:-1回答:2

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

我有一个带有按钮的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 button colors
2个回答
1
投票

是的,为什么不。 WPF是一个骗子的乐事。

您可以使用复选框代替第一个按钮。在“已检查”属性上,您可以更改其他按钮的颜色。现在,您希望它们都看起来像按钮。是不是很简单。只需重新设置Checkbox(ControlTemplate)的样式,使其看起来像Button。

有趣的是,所有这些都可以在XAML中完成,您不需要后面的代码。

[接下来,您说您想控制Froms中的外观更改。因此,这类似于主题构建器。我建议您阅读有关DynamicResources和ResourceDictionaries的内容。


0
投票

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

enter image description here

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

© www.soinside.com 2019 - 2024. All rights reserved.