C# WPF“;精选;自定义控件的属性或;逻辑焦点;。应该使用什么?

C# WPF“;精选;自定义控件的属性或;逻辑焦点;。应该使用什么?,c#,wpf,xaml,focus,selection,C#,Wpf,Xaml,Focus,Selection,在我的WPF项目中,我有一个自定义控件,它由一个矩形对象直观地表示。在XAML中,我基于这个自定义控件放置了许多矩形。用户应该能够通过单击鼠标来选择一组矩形,然后使用这些选定的矩形执行一些操作 我应该如何实现选择的可能性:(1)我应该简单地添加另一个自定义属性,例如“Selected”并在MouseClick事件处理程序中更改它,还是(2)我应该使用本机的“Logical Focus”功能 我认为,如果您正在将选择逻辑构建到控件中,您可能正在复制现有的选择器子类(如列表框)已经提供的功能 为什么

在我的WPF项目中,我有一个自定义控件,它由一个矩形对象直观地表示。在XAML中,我基于这个自定义控件放置了许多矩形。用户应该能够通过单击鼠标来选择一组矩形,然后使用这些选定的矩形执行一些操作


我应该如何实现选择的可能性:(1)我应该简单地添加另一个自定义属性,例如“Selected”并在MouseClick事件处理程序中更改它,还是(2)我应该使用本机的“Logical Focus”功能

我认为,如果您正在将选择逻辑构建到控件中,您可能正在复制现有的
选择器
子类(如
列表框
)已经提供的功能


为什么不将控件实例放在
列表框中,让它执行选择逻辑?

谢谢Kent。关于视觉布局-如果我需要,比方说,20个这样的矩形的水平行,那么我应该使用20个列表框吗?不,您将使用一个列表框,但将其ItemsPanel更改为满足布局要求的面板。默认情况下,它使用StackPanel,这就是为什么每个项目都位于上一个面板下方,但您可以将其换成另一个面板,甚至可以编写自己的面板并将其粘贴在其中。好的,谢谢。请,还有一个小问题:我试着像你说的那样构建ListBox,我看到事实上,item IsSelected是通过ListBox本身的深蓝色视觉显示的,但是ItemBox的这个项目中的矩形保持原样。有没有办法改变这一点,反之亦然(颜色只改变矩形本身)?我应该在哪里找这个?