<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      TextBoxPopupBehavior控件

      功能說明

      一個用于 WPF TextBox 的附加行為,實現 TextBox 與 Popup 控件的聯動效果:

      1. 自動彈出/關閉

        • TextBox 獲得焦點時自動打開關聯的 Popup
        • TextBox 失去焦點時自動關閉關聯的 Popup
      2. 點擊外部關閉

        • 點擊 TextBox 和 Popup 外部區域時關閉 Popup
      3. 焦點狀態處理

        • 解決 TextBox 保持焦點但 Popup 關閉后的重新觸發問題

      核心代碼解析

              // 解決在 TextBox 外其他地方點擊時,僅關閉 Popup,但是 TextBox 還是 Focused 狀態,導致再點擊進來時不會觸發彈出 Popup
              private void AssociatedObject_PreviewMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) {
                  if (AssociatedObject?.IsFocused == true && Popup != null && !Popup.IsOpen) {
                      Popup.IsOpen = true;
                  }
              }
      
              private void Window_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) {
                  if (Popup == null || !Popup.IsOpen || AssociatedObject == null || _parentWindow == null) { return; }
      
                  Point position = e.GetPosition(null);
                  Rect textBoxRect = new Rect(AssociatedObject.TranslatePoint(new Point(0, 0), _parentWindow), AssociatedObject.RenderSize);
                  Rect popupRect = new Rect(Popup.TranslatePoint(new Point(0, 0), _parentWindow), Popup.RenderSize);
                  if (!textBoxRect.Contains(position) && !popupRect.Contains(position)) {
                      Popup.SetCurrentValue(Popup.IsOpenProperty, false);
                  }
              }
      

      使用方法

      <TextBox x:Name="SearchBox"
               Width="400"
               Height="30"
               Text="{Binding ElementName=list, Path=SelectedItem.Content}">
          <hc:Interaction.Behaviors>
              <controls:TextBoxPopupBehavior Popup="{Binding ElementName=SuggestionsPopup}" />
          </hc:Interaction.Behaviors>
      </TextBox>
      
      <Popup x:Name="SuggestionsPopup"
             Placement="Bottom"
             PlacementTarget="{Binding ElementName=SearchBox}"
             StaysOpen="True">
          <Border Background="White"
                  BorderBrush="Gray"
                  BorderThickness="1">
              <ListBox x:Name="list"
                       Width="200"
                       Height="150">
                  <ListBoxItem>選項1</ListBoxItem>
                  <ListBoxItem>選項2</ListBoxItem>
                  <ListBoxItem>選項3</ListBoxItem>
              </ListBox>
          </Border>
      </Popup>
      

      注意事項

      • 確保 Popup 的 PlacementTarget 正確綁定
      • 在 MVVM 模式下可通過綁定設置 Popup 屬性
      • 控件卸載時會自動清理事件監聽
      posted @ 2025-07-19 20:47  01星河  閱讀(123)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产特色一区二区三区视频| 精品国产性色av网站| 亚洲男人的天堂av手机在线观看| 日韩中文字幕人妻一区| 免费看婬乱a欧美大片| 国产不卡一区二区在线| 人妻av无码一区二区三区| 国产精品久久毛片| 亚洲国产日韩a在线亚洲| 久久99国产精品久久99小说| 国产成人精品日本亚洲直播| 香蕉久久夜色精品国产成人| 九九热在线免费视频精品| 日本一卡2卡3卡四卡精品网站| 亚洲国产成人久久77| 亚洲第一二三区日韩国产| 国产精品第一区亚洲精品| 精品无码国产日韩制服丝袜| 蜜臀av一区二区三区日韩| 国产成人精品视频不卡| 看黄a大片日本真人视频直播 | 色综合中文字幕色综合激情 | 国产av丝袜熟女一二三| 成人国产精品一区二区不卡 | 国产九九视频一区二区三区| 一区二区三区午夜福利院| 久久天天躁狠狠躁夜夜躁| 免费看国产精品3a黄的视频| 韩国美女福利视频在线观看 | 任我爽精品视频在线播放 | 国产精品久线在线观看| 性色av无码不卡中文字幕| 亚洲国产中文字幕精品| 国产精品爽爽久久久久久| 国产盗摄视频一区二区三区| 九九热在线视频观看精品| 精品国产粉嫩内射白浆内射双马尾| 亚洲av区一区二区三区| 日本一区不卡高清更新二区| 精品乱码一区内射人妻无码| 欧美日韩人人模人人爽人人喊|