다른 단추에 대해 다양한 그래픽을 그리는 PathGeometry 인스턴스가 여러 개 있습니다. 그래서 Path.Stroke를 버튼 상태에 따라 업데이트하는 Path를 보여주는 버튼 타입을 만들었습니다. 마우스가 끝나면 비활성화되고 다른 색상으로 표시되면 회색으로 표시됩니다. 표준 물건 ...SetTargetName이 BasedOn 설정의 요소에 대해 작동하지 않습니다.
<Style x:Key="BasePathButton" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Name="Border"
<Path x:Name="Path" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Path" Property="Stroke" Value="Gray"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Path" Property="Stroke" Value="Green"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Path" Property="Stroke" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
분명히 나는 각 버튼 인스턴스마다 다른 Path.Data가 필요합니다. 그래서 ...이처럼 Path.Data을 설정
<Style x:Key="NLB" TargetType="{x:Type Button}" BasedOn="{StaticResource BasePathButton}">
<Setter TargetName="Path" Property="Data" Value="{StaticResource LeftPathGeometry}"/>
</Style>
을 BasedOn 스타일을 만들 ...하지만이 targetName을 = "경로"를 찾을 수 없다는 오류와 함께 실패합니다. 어떤 아이디어가 이것을 고치는 방법? 또는 사용할 형상으로 매개 변수화 된 경로가있는 단추를 만드는 더 나은 방법일까요?
을하지만이를 할당하지 않습니다 경로를 기본 스타일로. –
@PhilWright : 참조가 동적이기 때문에 다른 속성으로 테스트했지만 방금 해 봤습니다. 독립 실행 형 예를 추가했습니다. –
불편을 끼쳐 드려 죄송 합니다만, 한번 보시고 싶다면 거의 동일한 것을하기 위해 힘든 시간을 보내고 있습니다 : http://stackoverflow.com/questions/41062079/error-when-using-staticresourceextension-inside 스타일 - 자원 – heltonbiker