<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ?? 背景: UI中有一個TabControl, 包含2個TabItem,當切換到別的TabItem時可能彈框然后根據邏輯判斷是否跳轉過去。 然后我就做了這樣一個demo: xaml: <UserControl ???xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ???xmlns:x?="http://schemas.microsoft.com/winfx/2006/xaml" ???xmlns:d?="http://schemas.microsoft.com/expression/blend/2008" ???xmlns:mc?="http://schemas.openxmlformats.org/markup-compatibility/2006" ???xmlns:i?="http://schemas.microsoft.com/expression/2010/interactivity" ???xmlns:ic?="http://schemas.microsoft.com/expression/2010/interactions" ???xmlns:local?="clr-namespace:WpfApplication4" ???mc:Ignorable?="d" ???x:Class?="WpfApplication4.MainView" ???d:DesignWidth?="640" ???d:DesignHeight?="480" > ???<Grid ???????x:Name?="LayoutRoot" > ???????<TabControl ???????????x:Name?="tbcTest" ???????????SelectionChanged="TabControl_SelectionChanged" > ???????????<TabItem ???????????????x:Name?="tiItem1" ???????????????Header="TabItem1" > ???????????????<Grid ???????????????????Background="#FFE5E5E5" > ???????????????????<Button ???????????????????????Content="Button" ???????????????????????VerticalAlignment="Top" ???????????????????????Margin="73,197,142,0" /> ???????????????</Grid> ???????????</TabItem> ???????????<TabItem ???????????????x:Name?="tiItem2" ???????????????Header="TabItem2" ???????????????PreviewMouseLeftButtonDown="TabItem_PreviewMouseLeftButtonDown" > ???????????????<Grid ???????????????????Background="#FFE5E5E5" > ???????????????????<RadioButton ???????????????????????Content="RadioButton" ???????????????????????HorizontalAlignment="Left" ???????????????????????VerticalAlignment="Top" /> ???????????????</Grid> ???????????</TabItem> ???????</TabControl> ???</Grid> </UserControl> C# code: using?System?.Windows; using?System?.Windows.?Controls; namespace?WpfApplication4 { ???public?partial?class?MainView?:?UserControl ?? { ???????public?MainView?() ?????? { ???????????// Required to initialize variables ???????????InitializeComponent(); ?????? } ???????private?void?TabControl_SelectionChanged(?object?sender?,?System.Windows?.Controls.?SelectionChangedEventArgs?e?) ?????? { ???????????System.Diagnostics?.Debug.?WriteLine("SelectionChanged..."?); ?????? } ???????private?void?TabItem_PreviewMouseLeftButtonDown(object?sender,?System.Windows?.Input.?MouseButtonEventArgs?e?) ?????? { ???????????System.Diagnostics?.Debug.?WriteLine("PreviewMouseLeftButtonDown"?); ???????????????MessageBox.Show?("Test Modal Window"); ?????? } ?? } } 問題來了: 當點擊第2個tabItem彈框后,tabControl并沒有切換過去。 原因: 通過snoop的event分析后, 發現區別在于當彈框后焦點在Window上而不是TabItem上。? (1)沒有彈messagebox的事件 ![](https://box.kancloud.cn/2016-02-02_56b0015b0edef.jpg) (2)彈messagebox后的事件 ![](https://box.kancloud.cn/2016-02-02_56b0015b335ce.jpg) 解決辦法: 很簡單,不需要指定TabControl的SelectedItem, 不需要RaiseEvent。只需在MessageBox之后調用Focus()。 private?void?TabItem_PreviewMouseLeftButtonDown(object?sender,?System.Windows?.Input.?MouseButtonEventArgs?e?) ?????? { ???????????System.Diagnostics?.Debug.?WriteLine("PreviewMouseLeftButtonDown"?); ???????????if?(_isPopupMsgBox?) ?????????? { ???????????????MessageBox.Show?("Test Modal Window"); ?????????? } ???????????if?(_isPopupMsgBox?) ?????????? { ???????????????var?tabItem?=?sender?as?TabItem?; ???????????????if?(tabItem?!=?null) ?????????????? { ???????????????????//當在當前的界面上彈出二級界面再次關閉后, ???????????????????//焦點默認在當前窗體上,導致后續MouseDown事件并沒有在TabItem上生效。 ?????????????????? tabItem.Focus(); ?????????????? } ?????????? } ?????? } [![](https://box.kancloud.cn/2016-02-02_56b0015b4b257.jpg)](#)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看