编辑: 我将十六进制值(字符串)转换为画笔,因此它没有采用我的颜色,如下所示:
(Color)ColorConverter.ConvertFromString(colorArray[0])
剩下的唯一问题是缩放(带有颜色)。
我的彩条似乎是透明的(再次),但现在每个条都附加了正确的颜色。同样在我的程序启动时,所有 6 个条都显示(但它们不应该显示,因为它还没有任何价值)。 代码:
<Border Height="30" Margin="15" Grid.RowSpan="6" >
<Border.Background>
<LinearGradientBrush StartPoint="0.0,0" EndPoint="1.0,0">
<GradientStopCollection>
<GradientStop Offset="0.0" Color="{Binding FillBar, UpdateSourceTrigger=PropertyChanged}" />
<GradientStop Offset="{Binding Value, UpdateSourceTrigger=PropertyChanged}" />
</GradientStopCollection>
</LinearGradientBrush>
</Border.Background>
</Border>
我究竟如何摆脱酒吧中间/末端的透明褪色?
当我尝试向第二个偏移添加相同的颜色时,我得到全长条(100%)并且缩放再次无效。
我有以下带有 DateTemplate 的 ItemsControl,它表示一个简单的条形图:
<ItemsControl x:Name="icGrafiek"
Margin="0,0,0,0"
ItemsSource="{Binding Source={StaticResource Grafiek}}"
ItemTemplate="{DynamicResource GrafiekItemTemplate}"
RenderTransformOrigin="1,0.5" Grid.RowSpan="6" Grid.Column="1"/>
<DataTemplate x:Key="GrafiekItemTemplate">
<Grid>
<Border Height="30" Margin="15" Grid.RowSpan="6" >
<Border.Background>
<LinearGradientBrush StartPoint="0.0,0" EndPoint="1.0,0">
<GradientStopCollection>
<GradientStop Offset="0.0" Color="#fff" />
<GradientStop Offset="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
Color="{Binding Fill, UpdateSourceTrigger=PropertyChanged}" />
<GradientStop Offset="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
Color="{Binding Fill, UpdateSourceTrigger=PropertyChanged}" />
</GradientStopCollection>
</LinearGradientBrush>
</Border.Background>
</Border>
</Grid>
</DataTemplate>
问题实际上是显示我的图表控件条的颜色。
将显示以下内容:
在GradientBrush
我使用 aRectangle
代替之前创建条形图。我使用了 GradientBrush,所以我可以缩放我的条形图(Binding
Value返回一个值在 1.0 和 0 之间的列表,因此它们被缩放了)。对于一个矩形,我被卡住了,无法根据返回的 1.0 - 0 值缩放我的条形图。
旧代码Rectangle
:
<DataTemplate x:Key="GrafiekItemTemplate">
<Grid>
<Rectangle StrokeThickness="0" Height="30"
Margin="15"
HorizontalAlignment="Left"
VerticalAlignment="Stretch"
Width="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
Fill="{Binding Fill, UpdateSourceTrigger=PropertyChanged}">
<Rectangle.LayoutTransform>
<ScaleTransform ScaleX="20" />
</Rectangle.LayoutTransform>
</Rectangle>
</Grid>
</DataTemplate>
当我使用带有填充绑定的矩形时,我的图表看起来像这样(就像它应该的那样):填充 Binding
基本上返回一个包含十六进制值的列表来获取这些颜色。
如何LinearGradientBrush
用上图中显示的颜色填充(保存颜色的十六进制值的数组)?颜色的顺序保持不变。
或者,如果这是不可能的,我该如何用矩形把它拉下来?如果有其他矩形解决方案,我可以再次实现。
最好的问候彼得P。