C# 选项卡项的SelectionChanged事件
当我尝试从一个TabItem切换到另一个TabItem时,我会尝试创建通知,并尝试使用LostFocus()创建通知 实际上,我的每个TabItem都由TextBlock和一些写在上面的数据组成。因此,我尝试实现如下切换通知:C# 选项卡项的SelectionChanged事件,c#,.net,silverlight,silverlight-4.0,silverlight-5.0,C#,.net,Silverlight,Silverlight 4.0,Silverlight 5.0,当我尝试从一个TabItem切换到另一个TabItem时,我会尝试创建通知,并尝试使用LostFocus()创建通知 实际上,我的每个TabItem都由TextBlock和一些写在上面的数据组成。因此,我尝试实现如下切换通知: StackPanel sp = new StackPanel() { Orientation = Orientation.Horizontal }; sp.Children.Add(generateTextBlockCon
StackPanel sp = new StackPanel()
{
Orientation = Orientation.Horizontal
};
sp.Children.Add(generateTextBlockContaini());
TabItem tbi = new TabItem();
tbi.Header = sp;
tbi.LostFocus +=(o,e) =>
{
//MesssagePop up
MessageBox.Show("Hurrey tabItem changed");
};
出现的问题是:
(1) 它工作正常,但当我切换到另一个选项卡项时,我需要在文本块上单击一次,以便弹出此messagebox(因为如果我不单击,则不会设置其焦点)。有没有办法在silverlight 5中设置textblock的焦点
(2) 即使设置了它,它也会无限调用,因为我用textbox替换了textblock,并且我使用了Focus(),它会无限调用。通常TabItems与TabControls一起使用。 这为更改选项卡提供了属性和事件
对于您的特定情况,您可以使用
MouseLeave
和MouseEnter
事件,而不是LostFocus
和GotFocus
。这些事件将触发,而无需用户单击选项卡项中的控件