【问题标题】:SelectionChanged event for TabItemsTabItems 的 SelectionChanged 事件
【发布时间】:2014-07-22 09:59:25
【问题描述】:

当我尝试从一个 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) 它工作正常,但是当我切换到另一个 TabItem 时,我需要在文本块上单击一次才能弹出此消息框(因为如果我不单击,它的焦点未设置)。有没有办法在 silverlight 5 中设置文本块的焦点?

(2) 即使设置了它也会无限调用,因为我用文本框替换了文本块并且我使用了 Focus() 并且它正在无限调用。

【问题讨论】:

    标签: c# .net silverlight silverlight-4.0 silverlight-5.0


    【解决方案1】:

    通常 TabItems 与 TabControls 一起使用。 这提供了用于更改选项卡的属性和事件。

    Silverlight tabchanged event - tabcontrol

    【讨论】:

      【解决方案2】:

      对于您的特定情况,您可以使用MouseLeaveMouseEnter 事件而不是LostFocusGotFocus。这些事件无需用户点击TabItem 中的控件即可触发。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-17
        • 2017-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多