您在这里有几个选择。一是处理IsSelectionEnabledChanged
事件,二是修改控件模板。如果您想自己将列表置于编辑模式,我建议使用模板修改方法,因为事件处理程序在确定更改事件的来源时可能有点复杂。
从 Document Outline 窗格(CTRL+ W,U使其可见),右键单击您的列表控件,然后导航到 Edit Additional Templates => Edit ItemContainerStyle => Edit a Copy... 使用对话框命名模板并将其放置在您的首选资源中字典。查找命名的矩形并将InnerHintPanel
其OuterHintPanel
删除。这将删除激活编辑模式的点击区域。下面复制了这些矩形的 XAML。
<Grid HorizontalAlignment="Stretch">
...
<Rectangle x:Name="InnerHintPanel" Grid.Column="0" Width="24"
Height="{TemplateBinding HintPanelHeight}"
HorizontalAlignment="Left"
Fill="Transparent"
StrokeThickness="0">
<Rectangle.RenderTransform>
<CompositeTransform TranslateX="24"/>
</Rectangle.RenderTransform>
</Rectangle>
...
</Grid>
<Rectangle x:Name="OuterHintPanel" Width="24"
HorizontalAlignment="Left"
Height="{TemplateBinding HintPanelHeight}"
Fill="{TemplateBinding Background}"
StrokeThickness="0" Opacity="0.0"/>
您可能还应该删除所有已Storyboard.TargetName
设置为这些元素名称之一的情节提要动画,否则如果您进入编辑模式并且无法找到这些元素,则控制状态的转换将导致异常。