0
下記の値コンバータを検討してください。 "Red"や "Green"などの値をコンバーターに簡単に渡すことはできますが、XAMLで定義されたブラシをどのように渡すことができますか?静的リソースをカスタムSystem.Windows.Data.IValueConverterに渡しますか?
FalseBrush
をMyNiceBrush
にバインドするにはどうすればよいですか? XAMLで
<local:MyBrushConverter x:Key="BackgroundConverter" FalseBrush="Red" TrueBrush="Green" />
<LinearGradientBrush x:Key="MyNiceBrush" StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="#4C7F00" />
<GradientStop Offset="1" Color="#A0B529" />
</LinearGradientBrush>
、私はこのコンバータに私のオブジェクトのプロパティをバインド:Background="{Binding MyClass.TrueOrFalseProperty, Converter={StaticResource BackgroundConverter} ...
ここに私のコンバータです:
public class MyBrushConverter : IValueConverter
{
public Brush FalseBrush { get; set; }
public Brush TrueBrush { get; set; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((bool)value)
return TrueBrush;
else
return FalseBrush;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
は、なぜあなたはStaticResource' '経由でこれを行うことはできませんか? 'FalseBrush = {StaticResource MyNiceBrush}'。 – Zabavsky
私はそれを試みましたが、例外が発生し続けます: "'System.Windows.Markup.StaticResourceHolder'の値を指定すると例外がスローされました。 – l33t
Lol ...ブラシリソースをコンバータ宣言の上に置くと効果的です! – l33t