Фон окна привязки - PullRequest
       3

Фон окна привязки

0 голосов
/ 20 января 2011

Я хочу привязать фон окна к некоторому строковому свойству, чтобы при изменении свойства у меня был градиентный фон разных цветов:

<Window.Background>
    <LinearGradientBrush>
        <LinearGradientBrush.GradientStops>
            <GradientStop Color="White" Offset="0"/>
            <GradientStop Color="{Binding Source={RelativeSource Mode=Self}, 
                                          Path=backgroud_color}" Offset="1"/>
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>
</Window.Background>

код позади:

public event PropertyChangedEventHandler PropertyChanged;

private string _backgroud_color;
public string backgroud_color
{
   get { return _backgroud_color; }
   set
   {
      _backgroud_color = value;
      OnPropertyChanged("backgroud_color");
   }
}

public void OnPropertyChanged(string property_name)
{
   if (PropertyChanged != null)
      PropertyChanged(this, new PropertyChangedEventArgs(property_name));
}

но фон вообще не меняется. В чем проблема?

Ответы [ 2 ]

1 голос
/ 20 января 2011

Проблема в относительном источнике в привязке. Он будет ссылаться на GradientStop, у которого нет свойства backgroud_color. Вы установили DataContext для окна? В этом случае вы можете просто привязать цвет к backgroud_color следующим образом

<Window.Background>
    <LinearGradientBrush>
        <LinearGradientBrush.GradientStops>
            <GradientStop Color="White" Offset="0.5"/>
            <GradientStop Color="{Binding Path=backgroud_color}" Offset="1" />
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>
</Window.Background>

Код позади

public MainWindow()
{
    InitializeComponent();
    this.DataContext = this;
}
0 голосов
/ 20 января 2011

Вы можете перейти по следующей ссылке ...... может быть полезно изучить и понять основы .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...