0
WPF에서 단추에 대한 ControlTemplate을 만들고 트리거를 통해 Background Brush를 변경하려고했습니다. 브러시 값을 저장하기 위해 첨부 된 속성을 사용합니다.WPF : 컨트롤 템플릿 트리거 내부에서 연결된 속성을 읽을 수없는 이유는 무엇입니까?
첨부 된 속성 자체를 테스트 한 결과 잘 작동합니다. 설정하고 바인딩 할 수 있습니다 (예 : 단순히 해당 속성에 배경을 바인딩 할 때).
그러나 트리거 내에서 해당 속성을 가져 오려고하면 (해당 속성 값으로 Background 변경) 값이 읽히지 않습니다 (연결된 속성 가져 오기 도구 내에서 중단 점을 볼 때). 배경이 투명하게 바뀝니다.
어떻게 해결할 수 있습니까?
<ControlTemplate x:Key="DefaultButtonTemplate" TargetType="{x:Type Button}">
<Border
x:Name="border"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
SnapsToDevicePixels="True"
>
<ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="border" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ButtonAttachedProperties.BackgroundOnMouseOver}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
굉장합니다. 고맙습니다! – user884248