2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

WPF——如何為項(xiàng)目設(shè)置全局樣式。

 路人甲Java 2020-05-09

    在項(xiàng)目中,需要為所有的Button、TextBox設(shè)置一個(gè)默認(rèn)的全局樣式,一個(gè)個(gè)的為多個(gè)控件設(shè)置相同的樣式顯然是不明智的。在WPF中可以通過資源設(shè)置全局樣式,主要有倆種方法:

1.第一種就是先寫好按鈕的樣式,不寫Key,然后在App.xaml中引用。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style  TargetType="{x:Type CheckBox}" />
</ResourceDictionary>
          <!--  默認(rèn)Button樣式  -->
              <ResourceDictionary Source="pack://application:,,,/Resources/ButtonStyle/BasicButton.xaml" />
                <!--  默認(rèn)TextBox樣式  -->
                <ResourceDictionary Source="pack://application:,,,/Resources/TextBoxStyleBasic/TextBoxStyleBasic.xaml" />
                <!--  默認(rèn)CheckBox樣式  -->
            <ResourceDictionary Source="pack://application:,,,/Resources/ButtonStyle/BasicCheckbox.xaml" />
                <!--  默認(rèn)滾動(dòng)條樣式  -->               
      <ResourceDictionary Source="pack://application:,,,/Resources/ControlStyle/ScrollViewBasic.xaml" />

這種方式有多少個(gè)控件就需要在APP中累砌多少個(gè)引用,會(huì)使配置文件雜亂冗余,而且由于默認(rèn)樣式?jīng)]有Key,控制不夠靈活,所以再介紹下第二種方法。

2.

為控件寫的樣式和上文差不多,只是加上Key。(沒有Key為全局樣式,有Key則需要進(jìn)行鍵值引用)

 <Style x:Key="DefaultCheckBox" TargetType="{x:Type CheckBox}" />

新建一個(gè)資源,統(tǒng)一管理所有的控件樣式資源。通過BaseOn繼承帶Key的樣式,轉(zhuǎn)換為默認(rèn)全局樣式,然后只需要在App中引用這一個(gè)資源文件即可。這樣即使需要寫幾十上百個(gè)樣式,APP中也只需要一行代碼。

  <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="pack://application:,,,/Resources/ButtonStyle/BasicButton.xaml" />
        <ResourceDictionary Source="pack://application:,,,/Resources/ButtonStyle/BasicCheckbox.xaml" />
        <ResourceDictionary Source="pack://application:,,,/Resources/ControlStyle/ScrollViewBasic.xaml" />
        <ResourceDictionary Source="pack://application:,,,/Resources/TextBoxStyleBasic/TextBoxStyleBasic.xaml" />
    </ResourceDictionary.MergedDictionaries>
    <Style BasedOn="{StaticResource DefaultButton}" TargetType="Button" />
    <Style BasedOn="{StaticResource DefaultCheckBox}" TargetType="CheckBox" />
    <Style BasedOn="{StaticResource DefaultScrollViewer}" TargetType="ScrollViewer" />
    <Style BasedOn="{StaticResource DefaultTextBox}" TargetType="TextBox" />
</ResourceDictionary>

App中:

 <ResourceDictionary Source="pack://application:,,,/Resources/OverwrideDefaultControlStyles.xaml" />

 

總結(jié):如果只需要設(shè)置一倆個(gè)控件的全局樣式,第一個(gè)即可,設(shè)置多個(gè)控件樣式的話,還是建議第二種。另外:在APP.xaml中,相同控件的樣式,在最下面的引用優(yōu)先級(jí)更高。

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多