Я хочу изменить стиль темы унаследованным стилем (унаследованным на основе). Есть идеи? Это в основном определение нескольких стилей для многосерийных диаграмм в наборе инструментов wpf. Код выглядит следующим образом:WPF: изменить стиль элемента в унаследованной теме
<Style x:Key="A" TargetType="DVC:ColumnDataPoint">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="IsTabStop" Value="False" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DVC:ColumnDataPoint">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Opacity="0" x:Name="Root">
<Grid Background="{TemplateBinding Background}" Name="columngrid">
<Grid.Resources>
<Style x:Key="aquaboarder" TargetType="Border">
<Style.Resources>
<LinearGradientBrush x:Key="BackBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#B211B9D8" Offset="0.1" />
<GradientStop Color="#FF0F56C7" Offset="0.9" />
</LinearGradientBrush>
</Style.Resources>
<Setter Property="Background" Value="{StaticResource BackBrush}"/>
</Style>
</Grid.Resources>
<Border Name="columnBorder" BorderBrush="Transparent" BorderThickness="1" CornerRadius="20,20,0,0" Style="{StaticResource aquaboarder}">
</Border>
</Grid>
<ToolTipService.ToolTip>
<ContentControl Content="{TemplateBinding FormattedDependentValue}" />
</ToolTipService.ToolTip>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
И унаследовал стиль выглядит следующим образом:
<Style x:Key="B" BasedOn="{StaticResource A}" TargetType="DVC:ColumnDataPoint">
<Style.Resources>
<LinearGradientBrush x:Key="BackBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="#B24DE509" Offset="0.1" />
<GradientStop Color="#FF238910" Offset="0.9" />
</LinearGradientBrush>
</Style.Resources>
</Style>
Я хочу, чтобы установить columngrid в «стиле А» использовать backbrush, определенный в «стиле B» , Мне не нравится делать больше вещей в стиле B, так как у меня будет много унаследованных стилей, которые будут просто изменены после этого.
Привет, Рик, Спасибо за ответ и извините за поздний комментарий. Я просто получил ценную идею и реализовал ее при создании диаграммы. У меня есть еще одна проблема, я хочу, чтобы все графики имели общую цветовую тему. Таким образом, я хотел бы, чтобы цвета фона для разных столбцов и т. Д. Унаследовались от цветов, определенных в палитре диаграмм. В этом случае, что мне делать? В настоящее время, как только я переопределяю тип серии точек данных (например, точка данных столбца), я получаю только оранжевый цвет. Заранее спасибо. –
Самый простой способ - привязать фон к свойству в контексте данных и установить там цвет. Этот метод описан здесь: http://blogs.msdn.com/b/delay/archive/2009/02/04/columns-of-a-different-color-customizing-the-appearance-of-silverlight-charts- с-re-templating-and-mvvm.aspx –
Привет, Рик, еще раз спасибо за ваши полезные комментарии и ответы. Я просмотрю контент в указанной вами ссылке и попытаюсь заставить все работать. :-) –