У меня есть окно, в котором a имеет прямоугольник. Я хочу, чтобы его заполнение было градиентом для другого заполнения прямоугольника, но в другом окне. Окно «источник» определяется как:
Есть прямоугольник
...
и имущество:
public partial class ColorSelectorWindow : Window
{
public Brush SelectedBrush
{
get
{
return ColorPicker.Fill;
}
}
}
Теперь в целевом окне я определяю прямоугольник:
где BrushToColorConverter преобразует кисть в цвет. Это не работает, и я не знаю, почему, кажется, у меня проблема с обращением к этому «исходному» окну. Я создаю его в конструкторе целевого окна:
public MainWindow()
{
colorWindow = new ColorSelectorWindow();
colorWindow.Name = "colorWindowSelector";
colorWindow.Hide();
InitializeComponent();
}
Я только скрываю и показываю это, а не закрываю точно. Как правильно связать его?
Вы должны иметь свойство, выставленное SelectedBrush на вашем MainWindow, и вам просто нужно привязать цвет этой кисти с помощью RelativeSource. Итак, это будет для вас -
Но убедитесь, что при создании окна вы устанавливаете его владельца как MainWindow -
public MainWindow()
{
InitializeComponent();
colorWindow = new ColorSelectorWindow();
colorWindow.Name = "colorWindowSelector";
colorWindow.Owner = this;
colorWindow.Hide();
}