簡體   English   中英

在C#中的tab控件上附加一個關閉按鈕

[英]Attach a single close button on the tabcontrol in C#

我如何在C#中的tabcontrol上附加單個關閉按鈕。 有很多方法可以分別在每個選項卡上附加一個關閉按鈕,但是我只想附加一個(例如)我們可以在Microsoft Visual Stdio 2008上看到的按鈕。所以Plz可以幫助我。

這是一種廉價的方法,可能會讓您入門:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <DockPanel>
        <TabControl DockPanel.Dock="Top">
            <TabItem Header="Test1" />
            <TabItem Header="Test2" />
            <TabItem Header="Test3" />
            <TabItem Focusable="False">
                <TabItem.Header>
                    <Button Command="{Binding CloseTab}" Content="X" Width="21" HorizontalAlignment="Stretch" />
                </TabItem.Header>
            </TabItem>
        </TabControl>
    </DockPanel>
</Window>

然后,您需要在DataContext上實現public ICommand CloseTab字段或屬性,並根據自己的喜好對選項卡控件進行樣式設置。

選項卡項目標題中的“關閉”按鈕

編輯:

如果使用此方法:

  • 接線按鈕很棘手。 您必須注意不要關閉包含按鈕的標簽
  • 這不適用於動態創建的選項卡,因為您必須確保將“關閉”按鈕附加到列表中
  • 關閉選定的標簽時,您必須弄清楚如何重新選擇上一個選定的標簽
  • 標簽開始包裝時,您還會有怪異的行為
  • 制表符停止行為很難正確解決。 您不能使最后一個TabItem焦點,因為焦點用於確定要關閉的內容,但是按Tab鍵關閉正常的TabItem鍵盤流程

我想出了一種樣式,該樣式使按鈕看起來像常規選項卡,並在其上帶有粗體X ,這在外觀上更像IE8,並解決了鍵盤選擇問題。 但這很復雜,而且這種解決方案也很復雜。

最終,每個選項卡上的關閉按鈕都可以更好地使用選項卡控件的默認行為。 該解決方案的唯一問題是占用更多空間。 您可以作弊並使關閉按鈕折疊,直到將鼠標懸停在選項卡項目上為止,盡管這只是用戶體驗的禁忌,除非您只是縮小它。

如果您認真考慮使用單獨的關閉按鈕,建議您看一下本文,然后將其對滾動按鈕所做的操作調整為您的關閉按鈕:

http://www.blogs.intuidev.com/post/2010/02/10/TabControlStyling_PartThree.aspx

忽略它們對關閉按鈕的作用:)

是否可以將您的tabcontrol放在另一個容器控件上,並讓該控件的關閉按鈕完成這項工作?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM