2018年7月6日金曜日

WPFの DataGridで IMEを制御するには(XAML)

WPFのDataGridTextColumnで  IMEを制御する方法をグッグってみたけど、ドンピシャのサイトは、みつけられませんでした。実験結果、以下の方法にたどり着いたのでその備忘録

<DataGridTextColumn Header="名" Width="90"
   Binding="{Binding mei,UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" >
  <DataGridTextColumn.ElementStyle>
    <Style TargetType="{x:Type TextBlock}">
      <Setter Property="VerticalAlignment" Value="Center" />
  </DataGridTextColumn.ElementStyle>
  <DataGridTextColumn.EditingElementStyle>
    <Style TargetType="{x:Type TextBox}">
      <Setter Property="VerticalAlignment" Value="Center" />
      <Setter Property="InputMethod.PreferredImeState" Value="On" />
      <Setter Property="InputMethod.PreferredImeConversionMode" Value="FullShape,Native" />
    </Style>
  </DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>

上の例では、IMEをOnにして、日本語入力状態にしています。あわせて文字表示のVerticalAlignmentをCenterにしています。

0 件のコメント:

コメントを投稿