4

TextBox と Rectangle を表示しようとしていますが、どちらも別のクラスで Color プロパティを示しています。私は Caliburn.Micro と MVVM のアプローチを使用しています (私はこれが初めてです)。

私の問題は、 TextBox がデフォルトで Color.ToString を書き込むことですが、 Rectangle は同じ Color で塗りつぶされません。実際、四角形は常に見えません。それを埋める方法は?

XAML ビューからの抽出:

<TextBox Grid.Row="7" Grid.Column="1" Margin="10,7,20,7"
         Text="{Binding Path=Design.EdgeHighlightOutOfRangeColor}"
         FontSize="12" FontFamily="Rockwell" Width="110" HorizontalAlignment="Left"/>
<Rectangle Grid.Row="7" Grid.Column="1" Width="20" Height="20" Margin="100,7,20,7">
    <Rectangle.Fill>
        <SolidColorBrush Color="{Binding Path=Design.EdgeHighlightOutOfRangeColor}"/>
    </Rectangle.Fill>
</Rectangle>

C# ViewModel から抽出:

_designSettings = _settings.DesignSettings;
public DesignSettings Design
{
    get { return _designSettings; }
    set
    {
        _designSettings = value;
        NotifyOfPropertyChange(() => Design);
    }
}

DesignSettings クラス内で、次のプロパティをバインドします。

public Color EdgeHighlightOutOfRangeColor { get; set; }
4

3 に答える 3

2

Color プロパティに間違った名前空間を使用していない限り、コードは機能するはずです。

色はSystem.DrawingおよびSystem.Windows.Media.Colorsにあります。Rectangle にバインドするには、System.Windows.Media を使用していることを確認してください。

System.Drawing を使用すると、次のようになります。塗りつぶされた四角形なし

ここに画像の説明を入力

于 2013-10-18T09:33:43.610 に答える