저는 WPF에 익숙하지 않습니다. 저는이 작업이 올바르게 수행되고 있는지 불확실하기 때문에 제가하고 싶은 일에 대한 해결책을 찾기 위해 고심하고 있습니다.WPF 스타일 트리거 TemplateBinding
내가이 자리 {ORIGINAL-COLOR}
을 넣어 한 XAML에서는 버튼
<Style x:Key="ToolBarButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Margin" Value="5" />
<Setter Property="BorderBrush" Value="White" />
<Setter Property="Background" Value="{DynamicResource CompanyBlue}" />
<Setter Property="Foreground" Value="White" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="FontSize" Value="20" />
<Setter Property="Width" Value="100" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="ButtonBorder" BorderThickness="5" CornerRadius="5"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}"
Width="{TemplateBinding Width}">
<ContentPresenter Margin="10" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Button.Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0,-0.2" EndPoint="0,1.2">
<LinearGradientBrush.GradientStops>
<GradientStop Color="White" Offset="0" />
<GradientStop Color="{ORIGINAL-COLOR}" Offset="0.5" />
<GradientStop Color="White" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
에 정의 된 다음과 같은 스타일을 가지고, 나는 기본적으로이 이전에 제어 {TemplateBinding Background}
설정에 사용되는 값으로 원하는 스타일의 서식 파일입니다.
나는 {Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}
을 사용해야한다는 제안을 보았지만 이것이 작동하지 않습니다.
미리 도움을 청하십시오. Background
이 Brush
하지 Color
이다의
가 작동하지 않습니다? 메시지/오류 란 무엇인가요? 아니면 자동으로 실패합니까? WPF가 많은 디버그 정보를 덤프하는 곳이기 때문에 출력 창을 확인하십시오. – pbalaga
'Background'의 리턴 타입이'Color'가 아니고'Brush'이기 때문에'Color'를'Background' 속성에 바인드 할 수 없습니다. –
내가 얻는 오류는 다음과 같습니다 : 대상 요소에 대한 통제 FrameworkElement 또는 FrameworkContentElement을 (를) 찾을 수 없습니다. BindingExpression : Path = Background.Color; DataItem = null; 대상 요소는 'GradientStop'(HashCode = 19346574)입니다. 대상 속성이 'Color'(유형 'Color')입니다. –