我想要一個幾乎未修改的 tabcontrol,它與我正在為其創建插件的程式的樣式相匹配。我的問題是,默認情況下,tabcontrol 選項卡似乎有一個位于選項卡范圍內的邊框,這會在非活動選項卡相遇的地方創建一個雙邊框。我希望這個邊框是一條線,與選項卡頂部的厚度相同(我使用的是頂部,右對齊)。
不幸的是,我在谷歌和這里用來描述這個的詞很難弄清楚我需要改變什么屬性/屬性。我曾嘗試使用Margin="-1,0,0,0"除第一個選項卡之外的所有選項卡將它們“擠壓”在一起,但這無意中強制除第一個選項卡之外的所有選項卡在活動/選擇/按下時不放大。
這是選項卡控制元件,大部分未修改,兩個非活動選項卡之間的雙邊框似乎是默認外觀:

這是Margin設定為上述值和兩個非活動選項卡之間邊框所需外觀的構建:

這是使用上述Margin設定的問題原因:

對此的任何幫助將不勝感激!這可能是一個非常簡單的修復,但我對 tabcontrols 不太熟悉,查看屬性并沒有給我正確的洞察力來自己解決它。
uj5u.com熱心網友回復:
更改 TabItem Header 的 BorderThickness 的唯一方法是編輯其 ControlTemplate。在設計中,右鍵單擊標題并選擇“編輯模板”>“編輯副本”。您必須編輯 MultiDataTrigger,該觸發器在IsSelected為 false 且TapStripPlacement為 Top時更改 TabItem 的 mainBorder 的 BorderThickness 。找到此代碼:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="false"/>
<Condition Binding="{Binding TabStripPlacement, RelativeSource={RelativeSource AncestorType={x:Type TabControl}}}" Value="Top"/>
</MultiDataTrigger.Conditions>
<Setter Property="BorderThickness" TargetName="innerBorder" Value="1,1,1,0"/>
<Setter Property="BorderThickness" TargetName="mainBorder" Value="1,1,1,0"/>
</MultiDataTrigger>
將 mainBorder 的 BorderThickness 的值更改為“0,1,1,0”。然后,您可以將樣式應用到除第一個以外的每個 TabItem。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/313958.html
上一篇:如果屬性似乎沒有名稱,我如何告訴NotifyPropertyChanged方法哪個屬性發生了更改?
下一篇:無滾動的UWPListView
