전체 응용 프로그램에서 밑줄 (_)이 표시되지 않았습니다.밑줄이 WPF에 표시되지 않았습니다.
접근 자 때문입니다. 하지만 어떻게 비활성화 할 수 있습니까? 신청 범위가 넓습니까? 나는
이전체 응용 프로그램에서 밑줄 (_)이 표시되지 않았습니다.밑줄이 WPF에 표시되지 않았습니다.
접근 자 때문입니다. 하지만 어떻게 비활성화 할 수 있습니까? 신청 범위가 넓습니까? 나는
이비활성화는이 같은 레이블의 기본 템플릿을 재정의 할 수 있습니다 모든 레이블에 대해 전역 밑줄 :
<Style x:Key="{x:Type Label}"
TargetType="{x:Type Label}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Label}">
<Border Background="{TemplateBinding Background}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="true">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
RecognizesAccessKey="False"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled"
Value="false">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
그것은이 라인에서 기본 템플릿과 다릅니다 RecognizesAccessKey="False"
.
이 스타일을 응용 프로그램의 글로벌 리소스 (App.xaml
)에 넣으면 레이블에 더 이상 밑줄이 인식되지 않습니다.
안녕하세요! 당신의 응답을 주셔서 감사합니다! 나는 그것을 오늘 시험 할 것이다. 그러나 내가 필요로하는 것처럼 보인다. 기본값을 바인드하는 것이 필수입니까? – J4N
@ J4N - 아무 것도 묶을 필요가 없습니다. 이 스타일을 글로벌 리소스 (App.xaml)에 넣으면 응용 프로그램의 모든 레이블에 자동으로 적용됩니다 (다른 스타일이 레이블에 명시 적으로 지정되지 않은 경우). –
실례합니다. 이런 종류의 것에 대해 말하고있었습니다. 패딩 = "{TemplateBinding 패딩}" 필수 항목입니까? 왜냐하면 뭔가를 표시해야하는 모든 구성 요소에 대해 그렇게해야한다면, 코드의 양을 줄이려고합니다. – J4N
하나의 쉬운 해결책은 < 레이블 >을 사용하지 않는 것입니다. <TextBox>은 밑줄을 사용하지 않습니다.
또는 TextBlock을 사용할 수 있습니다.'Content' 대신'Text'에 바인드하십시오. –
가능한 [WPF 레이블 단축키 사용 안함 (텍스트 밑줄 없음)] (http://stackoverflow.com/questions/40733/disable-wpf-label-accelerator-key-text-underscore-is-missing)의 중복 – Carl