wpf - 为什么 TabControl.SelectedContent != (TabControl.SelectedItem as TabItem).Content?

标签 wpf tabcontrol

下面的示例不应该发出蜂鸣声(在我看来),但它确实发出了。为什么?这是否意味着 SelectedContent 属性没有用?这是 WPF 中的错误吗?

<TabControl SelectionChanged="TabControl_SelectionChanged">
    <TabItem Header="Tab 1">
        <Grid/>
    </TabItem>
    <TabItem Header="Tab 2">
        <Grid/>
    </TabItem>
</TabControl>

 

void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var t = sender as TabControl;
    if (t.SelectedContent != (t.SelectedItem as TabItem).Content) Console.Beep();
}

最佳答案

我做了一些测试,发现 SelectedContent 属性是在使用 SelectionChanged 事件之后设置的,而 SelectedItem 事件引发之前设置的。!

将其中一个网格更改为 Stackpanel 并在 if 子句上设置断点...

关于wpf - 为什么 TabControl.SelectedContent != (TabControl.SelectedItem as TabItem).Content?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2551792/

相关文章:

c# - WPF Datagrid 获取所有选中的行(不使用 WPF 绑定(bind))

c# - WPF:如何实现通用窗口?

c# - 如何在滚动的 WPF TabControl 中更改 TabItems 的外观?

wpf - PRISM RegionManager - TabControl 选项卡顺序

c# - 如何在 asp.net 中显示选项卡控件

c# - 为什么我不能在 WPF 中移动路径?

wpf - 如何使用数据模板处理多个选项卡的启用属性?

c# - 将按键事件绑定(bind)到 WPF 中的 ListViewItem

c# - 如何使 Tab 页面的宽度适合 TabControl 的宽度

wpf - 防止 TabItem 中的 ScrollViewer 在更改 Tab 时重置偏移量