だからもう一度ここに来て、問題を解決することはできません。私の問題は、ボタンスタイルが読み込まれるたびに xamlparse execption を取得することです。 MVVM のクエリからユーザーが定義した 1 つの色。これまでのところ問題はありませんでした。問題は、長方形の LinearGradientBrush 内の grandientstop にその色の値を与えようとしていることです。使用しているxamlコード:
<Rectangle x:Name="rectangle" Fill="{Binding Path=StrColor, Converter={StaticResource FadingBrushConverter}, RelativeSource={RelativeSource AncestorType={x:Type Rectangle}}}" HorizontalAlignment="Right" Height="70" Margin="0,0,0,0" RadiusY="5" RadiusX="5" VerticalAlignment="Bottom" Width="70">
<Rectangle.Effect>
<DropShadowEffect ShadowDepth="1" BlurRadius="8"/>
</Rectangle.Effect>
</Rectangle>
「StrColor」は Color プロパティです。
私のMVVMには、このコンバータがあります:
Public Class FadingBrushConverter
Implements IValueConverter
Public Function Convert(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
' TODO: Do some type-checking
Dim brush = New LinearGradientBrush()
Dim color = DirectCast(value, Color)
Dim Bcolor As System.Windows.Media.Color
Bcolor.R = 0
Bcolor.G = 0
Bcolor.B = 0
brush.StartPoint = New Point(0.5, 0)
brush.EndPoint = New Point(0.5, 1.27)
brush.GradientStops.Add(New GradientStop(color, 0))
brush.GradientStops.Add(New GradientStop(Bcolor, 1))
Return brush
End Function
Public Function ConvertBack(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
Throw New NotSupportedException()
End Function
End Class
ここで何が間違っているのか本当にわかりません。インターネットで探していましたが、これまでのところ、この問題を解決するのに運がありませんでした!
私も DynamicResource を使用しましたが、成功しませんでした!
助けてくれてありがとう!