我在stackpanel中有两个按钮,我想将一个人的背景和其他人的前景改为相同的颜色。
我在xaml中试过这个。
<StackPanel
Style="{DynamicResource LeftStackPanel}"
MouseEnter="StackPanel_MouseEnter"
MouseLeave="StackPanel_MouseLeave"
>
<Button
x:Name="profile_rct"
HorizontalAlignment="Center"
Height="70"
VerticalAlignment="Center"
Width="7"
Background="{Binding
Path=BackgroundBtn,
Mode=OneWay}"
BorderThickness="1,1,1,1"
BorderBrush="DimGray" />
<Button
x:Name="profile_txt"
Content="Profil Bilgisi"
Style="{DynamicResource LeftButton}"
Foreground="{Binding
Path=BackgroundBtn,
Mode=OneWay}">
<Button.LayoutTransform>
<RotateTransform Angle="90" />
</Button.LayoutTransform>
</Button>
</StackPanel>
在LeftStackPanel
中它只有位置参数,所以我认为它不重要。在profile_rct
中,我将背景绑定到BackgroundBtn
,并在profile_txt
中将此相同的变量绑定到前景。在LeftButton
样式中,前景没有值。
在代码中,StackPanel_MouseEnter
和BackgroundBtn
代码。
#region ViewModelProperty
private Brush backgroundbtn;
public Brush Backgroundbtn
{
get
{
return backgroundbtn;
}
set
{
backgroundbtn = value;
OnPropertyChanged("Backgroundbtn");
}
}
private void OnPropertyChanged(string v)
{
//throw new NotImplementedException();
}
#endregion
private void StackPanel_MouseEnter(object sender, MouseEventArgs e)
{
Backgroundbtn = Brushes.CadetBlue;
}
这里有两个问题,即使我在stackpanel上写事件,项目的颜色只有在我指向它们时才会改变,只有尖头项目的颜色会发生变化。我想改变两个项目的颜色。
其次,它不会改变profile_txt的前景而是背景。我不明白。
答案 0 :(得分:0)
在WPF中学习绑定:http://www.cheat-sheets.org/saved-copy/WpfBinding.pdf 在你的情况下:
Background="{Binding ElementName=BackgroundBtn, Path=Background, Mode=OneWay}"
答案 1 :(得分:0)
突出的第一件事是大不相同:BackgroundBtn
不是ViewModel上的属性,但Backgroundbtn
是。
这是问题吗?