私のアプリケーション全体では、表示されないアンダースコア(_)がいくつかあります。下線は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