簡體   English   中英

如何有條件地完全隱藏TabControl的TabPanel部分?

[英]How can I conditionally hide the TabPanel portion of a TabControl in its entirety?

我發現這個問題有很多變體,但是對話似乎總是圍繞着單個TabItems ,而不是圍繞TabPanel本身展開。

我的主窗口上有一個TabControl 這些選項卡是視圖。 這些視圖之一是特殊的……導航顯示,而其他所有視圖都是導航視圖可以打開的“部分”。

我要完成的工作是,當用戶查看導航視圖時,所有選項卡都消失了。 即隱藏整個TabPanel而不必一次一個地隱藏每個TabItem 在查看任何其他頁面時,將顯示選項卡,以便在視圖之間輕松移動。

我根據另一個問題的建議創建了這個問題

我遇到的問題是, TabPanel似乎沒有要進行綁定到Visibility屬性的DataTrigger類的Template ,可以重寫該Template 我得到的最接近的是一個普通的老式Style.Setter

關於如何獲得我所追求的任何建議?

您基本上可以自己提供答案-正確的組合是將StyleDataTrigger一起使用。 訣竅是定義一個TargetType設置為{x:Type TabPanel}Style ,並將其作為TabControl的資源-這樣,該樣式將應用於TabPanel (因為這是隱式樣式 )。 這是一個例子:

<TabControl (...)>
    <TabControl.Resources>
        <Style TargetType="{x:Type TabPanel}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding SelectedIndex, RelativeSource={RelativeSource AncestorType=TabControl}}"
                             Value="0">
                    <Setter Property="Visibility" Value="Collapsed" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TabControl.Resources>
    (...)
</TabControl>

在此示例中,選擇第一項時面板將折疊。

暫無
暫無

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

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