中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WP8開發日志(4):ResourceDictionary的外聯

發布時間:2020-08-10 11:27:33 來源:網絡 閱讀:636 作者:shengqin105 欄目:開發技術

也許,這是個簡單的問題,可惜WP8的開發資料真的是少得可憐,還是折騰了半天,MSDN上面說得挺清楚,不過似乎是WPF的內容,可以參考這里:http://msdn.microsoft.com/zh-cn/library/cc903952(v=vs.95).aspx ,我在這里做一下簡單的備忘。


一般我們在PhonePage里定義樣式,是直接在PhoneApplicationPage.Resources的條目下寫的,很明了的,本頁面定義的資源只能在本頁面里使用,根據CSS的思想,這里肯定會有辦法讓我們自己去定義一堆自己的控件或內容樣式,應用里的每一個頁面都可以去調用得到它。像下面的代碼,是WP8工程每個默認頁面都帶有的調用系統樣式的例子:

FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"


通過查看PhoneFontFamilyNormal定義,我們可以定位到一個叫DarkRed.xaml的文件,沒錯,這就是我們想要的效果,定義一個統一的樣式文件,然后在應用的隨便一個地方都可以調用得了,這個標準稱呼就叫“資源字典的外聯或合并”。


DarkRed.xaml本身就是一個很好的參考樣本,在此為基礎我們建立自己的樣式資源文件,起碼此文件上的引用信息是必須要用的,根據我上篇日志系列的例子工程,我打算將LongListSelector里的數據模板樣式放到獨立的資源文件里去,自建一個xaml的文件,Ctrl+C,Ctrl+V,像下面這個樣子:

//MySource/MyDataTemplate.xaml

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:System="clr-namespace:System;assembly=mscorlib">
                                                                                                                                           
    <DataTemplate x:Key="TestDataItemTemplate">
        <StackPanel Margin="0,0,0,0">
            <TextBlock Text="{Binding Index}"/>
            <TextBlock Text="{Binding Name}" />
            <StackPanel Height="1" Background="AliceBlue"></StackPanel>
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="TestDataItemTemplate2">
        <StackPanel Margin="0,0,0,0">
            <TextBlock Foreground="Red" Text="{Binding Index}"/>
            <TextBlock Foreground="Yellow" Text="{Binding Name}" />
            <TextBlock Foreground="Green" Text="{Binding Flag}" />
            <StackPanel Height="1" Background="RoyalBlue"></StackPanel>
        </StackPanel>
    </DataTemplate>
</ResourceDictionary>


至于如何引用呢?資源字典是頁面資源的一部分,所以還是要下PhoneApplicationPage.Resources下面作引用的操作,像下面這個樣子:

//MainPage.xaml

<!--引用外部的資源字典文件-->
<phone:PhoneApplicationPage.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="MySource/MyDataTemplate.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</phone:PhoneApplicationPage.Resources>


當然可以外聯很多個資源文件,看你自己安排,其他的代碼,一點也不須要動。最后,留個問題:如果將上面Resources里的內容放到App.xaml里的Application.Resources下面,那是否工程下面所有的頁面都不需要作引用操作就可以獲取到相關資源呢?我還木有試過呢。

附件:http://down.51cto.com/data/2364299
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太仆寺旗| 漯河市| 武穴市| 筠连县| 南溪县| 凤凰县| 庄河市| 桂林市| 新宾| 湖北省| 东乌| 大洼县| 汝州市| 眉山市| 特克斯县| 抚宁县| 县级市| 汉源县| 海安县| 类乌齐县| 临桂县| 襄城县| 安宁市| 万山特区| 子长县| 延安市| 翁源县| 临武县| 南平市| 尚志市| 彭水| 合山市| 鹰潭市| 都安| 南涧| 清流县| 宁都县| 子洲县| 南城县| 卢氏县| 台东县|