2017-12-27 504 views
0

我有一个StackPanel两个按钮,我想改变一个人的背景和其他的前景,以相同的颜色。如何改变两个按钮颜色在一个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我将背景绑定到BackgroundBtnprofile_txt我将同一个变量绑定到前景。在LeftButton风格,没有价值的前景。

在代码在这里是StackPanel_MouseEnterBackgroundBtn代码。

#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

脱颖而出的第一件事是万一区别:BackgroundBtn不是在您的视图模型的属性,但Backgroundbtn是。

是这个问题?