編輯: 我,我轉換爲Brush,因此它沒有考慮我的顏色像下面的十六進制值(字符串)把我的色彩成功地:一個LinearGradientBrush顏色綁定(簡單條形圖的ItemsControl)
(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%)和縮放再次無效。
我有以下的ItemsControl與代表一個簡單的條形圖DateTemplate:
<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
以前我用一個Rectangle
而不是創造吧。我用了GradientBrush,所以我可以規模我吧(在Binding
價值返回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
與顏色顯示在上面的圖片(陣列保持的顏色的十六進制值)?顏色的順序保持不變。
或者,如果這是不可能的實際上,我怎麼用矩形把它關閉? 如果還有其他方案與矩形我可以再次實施。
問候PeterP。
PeterP,我想你的大部分問題的根本原因是缺乏約束力轉換器。您不需要直接綁定值,而是將此值轉換爲適合您的演示需求。看一看:http://www.switchonthecode.com/tutorials/wpf-tutorial-binding-converters – 2012-05-01 14:47:12
您好海梅。也許但不確定如何用轉換器來解決這個問題。 – PeterP