상속 된 스타일의 테마 스타일을 (기반으로 상속 됨) 변경하고 싶습니다. 어떤 생각이있어? 이것은 기본적으로 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>
내가 "스타일 B"에 정의 된 backbrush를 사용하는 "스타일 A"의 columngrid을 설정하려면 다음과 같이 코드 보인다 . 나는 스타일 B에서 더 많은 것들을하고 싶지 않다. 왜냐하면 많은 상속 된 스타일들이 나중에이 스타일을 바꾸는 것으로 정의 될 것이기 때문이다.
안녕하세요 릭, 답변 해 주셔서 감사 드리며 늦어서 반갑습니다. 차트를 만들 때 가치있는 아이디어를 얻었습니다. 또 다른 문제가 있습니다. 모든 차트에 공통된 색상 테마를 공유하고 싶습니다. 따라서 차트 팔레트에 정의 된 색상에서 다른 열 등의 배경색을 상속해야합니다. 이 경우 어떻게해야합니까? 현재 데이터 포인트 시리즈 유형 (예 : 열 데이터 포인트)을 재정의하는 즉시 오렌지 색상 만 얻습니다. 미리 감사드립니다. –
가장 쉬운 방법은 배경을 데이터 컨텍스트의 속성에 바인딩하고 거기에 색상을 설정하는 것입니다. 이 기술은 다음에서 설명합니다. http://blogs.msdn.com/b/delay/archive/2009/02/04/columns-of-a-different-color-customizing-the-appearance-of-silverlight-charts- with-re-templating-and-mvvm.aspx –
안녕하세요 릭, 유용한 의견과 답변을 보내 주셔서 다시 한 번 감사드립니다. 내가 제공 한 링크의 내용을 살펴보고 일을 처리하도록 노력하겠습니다. –