所以我再一次来这里是为了解决我自己无法解决的问题,所以我的问题是每次加载按钮样式时我都会得到一个 xamlparse execption,在样式内部我有一个应该得到的 <rectangle>用户从我的 MVVM 上的查询中定义的一种颜色。到目前为止没有问题,问题是试图将该颜色值赋予矩形的 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”是一个颜色属性。
在我的 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 但没有成功!
谢谢你的帮助!