私は窓があり、そこには長方形があります。その塗りつぶしを別の矩形塗りつぶしのグラデーション停止にしたいのですが、別のウィンドウで行います。 "ソース" ウィンドウが次のように定義されますコントロールプロパティを別のウィンドウプロパティにバインドする方法は?
public partial class ColorSelectorWindow : Window
{
public Brush SelectedBrush
{
get
{
return ColorPicker.Fill;
}
}
}
さて、ターゲットウィンドウに、私は矩形を定義します:
<Window x:Class="WPF1.ColorSelectorWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:WPF1"
x:Name="colorSelectorWindow"
Title="ColorSelectorWindow" Height="281" Width="540">
長方形
<Rectangle HorizontalAlignment="Left" Margin="40,120,0,41" Stroke="Black" Width="100" Name="ColorPicker">
<Rectangle.Fill>
<SolidColorBrush>
<SolidColorBrush.Color>
...
</SolidColorBrush.Color>
</SolidColorBrush>
</Rectangle.Fill>
</Rectangle>
とプロパティがあります
<Rectangle Height="213" HorizontalAlignment="Left" Margin="27,8,0,0" Name="rectangle1" VerticalAlignment="Top" Width="25" Grid.Row="1">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Offset="0" Color="Blue" />
<GradientStop Offset="1" Color="{Binding ElementName=colorWindowSelector, Path=SelectedBrush, Converter={StaticResource BrushToColorConverter}}" />
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
ここで、BrushToColorConver terはBrushをColorに変換します。これは動作していないと私はなぜ知らない、私がターゲットウィンドウのコンストラクタでそれを構築しています..私は、「ソース」ウィンドウというのアドレッシングに問題があるようだ:
public MainWindow()
{
colorWindow = new ColorSelectorWindow();
colorWindow.Name = "colorWindowSelector";
colorWindow.Hide();
InitializeComponent();
}
私だけですそれを隠して見せて、必ずしも閉じないでください。それを正しくバインドするには?
使用... http://stackoverflow.com/questions/7825379/handling-a-bubbling-event-raised-from-a-modal-dialog-in-main-window/7831973#7831973 –