1

请帮助我,或告诉我方向。我一直在网上搜索这个问题,但找不到答案。我有 TextBlock,通过单击文本块,我将选项卡项添加到选项卡控件中。一切正常,除了 IS Selected= true; 选项卡项未被选中。我必须手动选择它。这是我的代码。

var tabControl = (sender as TextBlock).FindParent<TabControl>();

tabControl.Items.Add(new TabItem() { Header = "10 Last Documents", IsSelected = true, Content = rec, Width = 150 });

从 Button 投射时没关系。请帮我!

4

3 回答 3

1

我无法解释为什么它适用于来自按钮的演员表。但是当您创建 UI 元素并立即想要更改其属性时,我经常看到这种行为。大多数情况下,UI 尚未构建或正在构建中,这会导致阻塞某些消息管道。

这是您的问题的解决方法:您的 UI 是否通过调度程序异步更改,以便系统有足够的时间逐步创建所有内容,并且应该正确处理您的 IsSelected ...。

代码:

  Action newTabAction = () => tabControl.Items.Add(new TabItem() { Header = "10 Last Documents", IsSelected = true, Width = 150 });
  Dispatcher.BeginInvoke(newTabAction);
于 2012-05-23T13:15:46.680 回答
0

这也应该有效:

tabControl.Items.Add(new TabItem() { Header = "10 Last Documents", Content = rec, Width = 150 });
tabControl.SelectedIndex = tabControl.Items.Count - 1;
于 2012-05-23T13:46:14.090 回答
0

我知道这很旧,但以防万一有人遇到这个问题,我在单击图像时发现了类似的问题。我发现 mousedown 会导致类似的问题,即激活选项卡不起作用,但是当切换到 mouseup 时它开始工作。

于 2017-12-15T20:30:20.343 回答