EDIT: я шестнадцатеричное значение (строка), что я преобразуется в кисть, следовательно, она не приняла мой цвет следующих как берет мои цвета успешно:LinearGradientBrush Цвет Binding (Simple Bar Chart 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 мой график выглядел так (как должно быть): FillBinding
в основном возвращается список с шестнадцатеричными значениями для получения этих цветов.
Как я завалить LinearGradientBrush
с цветами показали на картинке выше (массив, который содержит шестнадцатеричные значения цветов)? Порядок цветов остается прежним.
Или, если это невозможно, как на самом деле вытащить его с помощью прямоугольника? Если есть другое решение с прямоугольником, я могу просто реализовать это снова.
С наилучшими пожеланиями, PeterP.
PeterP, я думаю, что основной причиной большинства ваших проблем является отсутствие конвертеров Binding. Вам не нужно напрямую привязывать значение, но для преобразования этого значения в соответствии с потребностями вашей презентации. Посмотрите: http://www.switchonthecode.com/tutorials/wpf-tutorial-binding-converters –
Привет, Хайме. Может быть, но не совсем уверен, как это решить с помощью преобразователей. – PeterP