Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 选项卡项的SelectionChanged事件_C#_.net_Silverlight_Silverlight 4.0_Silverlight 5.0 - Fatal编程技术网

C# 选项卡项的SelectionChanged事件

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

当我尝试从一个TabItem切换到另一个TabItem时,我会尝试创建通知,并尝试使用LostFocus()创建通知

实际上,我的每个TabItem都由TextBlock和一些写在上面的数据组成。因此,我尝试实现如下切换通知:

    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
。这些事件将触发,而无需用户单击
选项卡项中的控件