Wpf 为什么在切换到另一个选项卡项后选择了组合框的第一项?
我有一个Wpf 为什么在切换到另一个选项卡项后选择了组合框的第一项?,wpf,combobox,selection,tabcontrol,tabitem,Wpf,Combobox,Selection,Tabcontrol,Tabitem,我有一个TabControl和三个TabItems。在每个选项卡items中都有一个组合框。如果我在选项卡items中切换,则会选择组合框的第一个条目。但我不希望选择任何内容。怎么做 以下是一些屏幕截图: 第一次调用表单后,未选择任何内容 切换到第二个选项卡后,选择组合框的第一个元素 更新:这是本例的代码 <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/win
TabControl
和三个TabItems
。在每个选项卡items
中都有一个组合框
。如果我在选项卡items
中切换,则会选择组合框的第一个条目。但我不希望选择任何内容。怎么做
以下是一些屏幕截图:
第一次调用表单后,未选择任何内容
切换到第二个选项卡后,选择组合框的第一个元素
更新:这是本例的代码
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Width="525" SizeToContent="Height">
<Grid>
<TabControl>
<TabItem Header="Test 1">
<ComboBox>
<ComboBoxItem>Test 1</ComboBoxItem>
<ComboBoxItem>Test 2</ComboBoxItem>
</ComboBox>
</TabItem>
<TabItem Header="Test 2">
<ComboBox>
<ComboBoxItem>Test 1</ComboBoxItem>
<ComboBoxItem>Test 2</ComboBoxItem>
</ComboBox>
</TabItem>
<TabItem Header="Test 3">
<ComboBox>
<ComboBoxItem>Test 1</ComboBoxItem>
<ComboBoxItem>Test 2</ComboBoxItem>
</ComboBox>
</TabItem>
</TabControl>
</Grid>
示例代码中没有错误
这是密码吗
尝试删除选中的任何项目,或者如果有绑定,请说出来给您一个答案
在您的帮助下,经过漫长的网络旅程,我现在知道,没有办法避免这种行为,tabitem上的第一个可聚焦的子对象可以集中注意力,而不需要一些代码:(
感谢大家的回答,特别是@makc的建议,蓝色背景意味着combobox是聚焦的。尝试将combobox的FocusVisualStyle
设置为null
-
<ComboBox FocusVisualStyle="{x:Null}">
<ComboBoxItem>Test 1</ComboBoxItem>
<ComboBoxItem>Test 2</ComboBoxItem>
</ComboBox>
测试1
测试2
如果不想选择,为什么要设置选择?只需删除这里的SelectedIndex
值名称…我无法复制它…你确定你没有绑定到某个地方,或者设置SelectedIndex吗?SelectedIndex是否在每次切换选项卡时都会更改,或者只是在首次启动时才默认设置?@Smolla I've只是复制了代码并创建了一个新项目,没有默认选择!(蓝色背景显示为默认焦点行为)不幸的是,我也无法重现该问题。为什么不打开一个新项目并发布您提供的代码。如果您仍然遇到该问题,请告诉我们。或者,在Visual Studio中,请按F5
,以便我们可以看到后面的代码。复制该代码并发布。@makc您的建议为我提供了一个新的方向。如果我将“聚焦”设置为false,蓝色背景消失。但现在我无法使用tab键跳转到组合框。虽然我无法重新创建您上面发布的代码的问题。没有任何更改。组合框是TabItem中第一个可聚焦的子项,它已聚焦,这意味着背景将变为蓝色。没有选择任何内容,也没有选择任何内容结合
<ComboBox FocusVisualStyle="{x:Null}">
<ComboBoxItem>Test 1</ComboBoxItem>
<ComboBoxItem>Test 2</ComboBoxItem>
</ComboBox>