https://stackoverflow.com/a/13188979/637142で説明されているようなカスタム コントロールを作成しようとしています。
これまでのところ、リストビューは次のとおりです。
<ListView Name="listBox1">
<!-- Place items horizontaly -->
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" ></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Resources>
<!-- Background for Selected ListViewItem -->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Yellow"/>
</Style.Resources>
</Style>
</ListView.ItemContainerStyle>
<!-- The items on the listview -->
<ListView.Items>
<TextBlock Margin="5">Test1</TextBlock>
<TextBlock Margin="5">Test2</TextBlock>
<TextBlock Margin="5">Test3</TextBlock>
</ListView.Items>
</ListView>
私が今抱えている唯一の問題は、ユーザーが矢印キーで項目を選択したときです。たとえば、マウスで項目を選択すると、次のようになります。
しかし、矢印キーで同じ項目を選択すると、次のようになります。
選択したアイテムから黒い点線の境界線を削除するにはどうすればよいですか?
previewKeyDown イベントを追加してから、次のように処理したくありません
if (e.Key == Key.Left)
{
listBox1.SelectedIndex--;
e.Handled = true;
}
else if (e.Key == Key.Right)
{
listBox1.SelectedIndex++;
e.Handled = true;
}
シフトキーで複数選択できるようにしたいからです。