텍스트 콘텐츠를 흰색에서 검은 색으로 변경하는 마우스 오버 스타일을 지정하는 표준 내 응용 프로그램에 Button
Style
이 적용되어 있습니다. 이것을 달성하기 위해 버튼 템플릿을 수정하고 ContentPresenter
을 제거하고 TextBlock
으로 바꾸어 보았습니다.혼합 된 내용의 WPF 버튼에 마우스 오버 스타일 사용
<Button
<Button.Content>
<StackPanel Orientation="Horizontal">
<Path Margin="3" Width="12.375" Height="9.70833" Canvas.Left="0" Canvas.Top="0"
Stretch="Fill" Fill="#FF115485"
Data="F1 M 18.8333,7.08333L 16.7083,4.91667L 10.5,10.5417L 8.52083,8.6875L 6.45833,10.4792L 10.4792,14.625L 18.8333,7.08333 Z "/>
<TextBlock Margin="3">Hello</TextBlock>
</StackPanel>
</Button.Content>
</Button>
상황을 개선하기 위해, 나는 그때의 ContentPresenter
을 넣어 버튼이 같은 ContentTemplate
지정 제 (전용 텍스트)에 : 그러나,이 내가 같은 혼합 콘텐츠를 할 수 없음을 의미
<Button IsDefault="True" Content="Text only Button"
ContentTemplate="{StaticResource TextButtonTemplate}"
Command="{Binding ...}"
CommandParameter="{...}" />
그리고 Template
은 다음과 같이 정의됩니다. 이 템플릿은 텍스트 콘텐츠가 포함 된 Button
에 대해서만 작동하며 혼합 콘텐츠에 필요한 다른 템플릿으로 정의됩니다.
<DataTemplate x:Key="TextButtonTemplate">
<TextBlock Text="{TemplateBinding Content}"
Foreground="{Binding Path=Foreground,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Button}}" />
</DataTemplate>
내가 원하는 마우스 오버 스타일을 유지하여이를 더욱 향상시킬 수있는 방법은 사용자 정의 템플릿을 정의하지 않고있는 경우
사람이 알고 있나요? 명시 적으로 자신의 모든 색상을 설정하지 않는 내용을 가정
대단한 답변을 보내 주셔서 감사합니다. 전에 상속 된 속성으로는 아무 것도하지 않았습니다. 불행히도, 내 TextBlocks는 시스템 자체를 사용하지 않기 때문에 자신의 색상을 설정합니다. 그 중 하나에 새로운 질문을 게시해야 할 수도 있습니다 ..... –
나를 위해 작동하지 않습니다. – flq