簡體   English   中英

如何將MahApps樣式應用於自己的WPF控件?

[英]How can I apply MahApps style to my own WPF control?

通常,當我將TabItem的Header設置為某些字符串時,MahApps樣式將應用於TabItem Header。

但是,我以編程方式創建了自定義TabItem,它的標頭不是字符串,而是StackPanel,MahApps的所有樣式都丟失了。 如何將MahApps樣式重新應用到自定義TabItem標頭?

TabItem tabItem = new TabItem();

StackPanel tabItemHeader = new StackPanel();
tabItemHeader.Orientation = Orientation.Horizontal;
var tabTitle = new Label() {Content = "Userstory"};
var closeButton = new Button() {Content = "x"}; 
tabItemHeader.Children.Add(tabTitle);
tabItemHeader.Children.Add(closeButton);

tabItem.Header = headerStackPanel;

您應該利用XAML和樣式的力量來做到這一點。 這是您可以做什么的簡短示例:

將此樣式放在Window資源或App資源中。

<Style x:Key="CustomTabItemStyle" TargetType="{x:Type TabItem}" BasedOn="{StaticResource MetroTabItem}">
    <Setter Property="HeaderTemplate">
        <Setter.Value>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <ContentPresenter Content="{TemplateBinding Content}" />
                    <Button Margin="2" VerticalAlignment="Top" Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}" Content="x" />
                </StackPanel>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

並在你的TabItems上使用它

<TabItem Header="Userstory" Style="{StaticResource CustomTabItemStyle}">
    <!-- your tab content -->
</TabItem>

使用樣式的好處是,您可以執行/更改所需的操作...

希望這可以幫助!

暫無
暫無

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

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