標籤:
在Windows Phone中設定元素樣式有多種
拿TextBlock來說
1、我們可以直接在控制項上設定:
<TextBlock Text="自身樣式設定" Width="270" FontSize="20" Foreground="#FF6B6A6A"/>
2、也可以這樣:在頁面的靜態資源中設定
<phone:PhoneApplicationPage.Resources> <Style TargetType="TextBlock" x:Name="NomalStyle" > <Setter Property="Foreground" Value="#FF6B6A6A" ></Setter> <Setter Property="TextTrimming" Value="WordEllipsis"></Setter> <Setter Property="Width" Value="270"></Setter> <Setter Property="FontSize" Value="20"></Setter> </Style></phone:PhoneApplicationPage.Resources><!--通過Style屬性設定樣式--><TextBlock Text="通過Style設定樣式" Style="{StaticResource NomalStyle}" /><!--通過Style屬性設定樣式,增加或修改樣式--><TextBlock Text="通過Style設定樣式,但FontSize屬性以我為準,我又比樣式多了Margin屬性" Style="{StaticResource NomalStyle}" FontSize="50" Margin="12,0" />
3、如果要設定當前頁面的所有TextBlock的公用樣式的話,可以將上述的x:Name去掉便可,所在頁面的TextBlock都會使用頁面資源裡設定的樣式
<phone:PhoneApplicationPage.Resources> <Style TargetType="TextBlock"> <Setter Property="Foreground" Value="#FF6B6A6A" ></Setter> <Setter Property="TextTrimming" Value="WordEllipsis"></Setter> <Setter Property="Width" Value="270"></Setter> <Setter Property="FontSize" Value="20"></Setter> </Style></phone:PhoneApplicationPage.Resources><!--使用頁面樣式資源設定樣式--><TextBlock Text="使用頁面樣式資源設定樣式,我與下邊的文本一樣" /><TextBlock Text="使用頁面樣式資源設定樣式,我與上邊的文本一樣" /><!--使用頁面樣式資源設定樣式,增加或修改樣式--><TextBlock Text="使用頁面樣式資源設定樣式,但我與上邊的不一樣,但FontSize屬性以我為準,我又比樣式多了Margin屬性" FontSize="50" Margin="12,0" />
4、如果整個項目中都想使用,那麼就將2或者3中介紹的資源放在App.Xaml中的 <Application.Resources> </Application.Resources>的節點中
5、局部樣式怎麼設定呢?比如:設定StackPanel中的所有TextBlock的樣式,除了用上述2的方法設定Style之外還有什麼方法呢?由方法2可發現,Style放在頁面資源中,那麼是否能將Style放在StackPanel的內部資源中呢,經過實現是可以的
<StackPanel> <StackPanel.Resources> <Style TargetType="TextBlock"> <Setter Property="Foreground" Value="#FF6B6A6A" ></Setter> <Setter Property="Width" Value="37"></Setter> <Setter Property="FontSize" Value="27"></Setter> <Setter Property="Margin" Value="0"></Setter> <Setter Property="TextWrapping" Value="Wrap"></Setter> <Setter Property="TextAlignment" Value="Center"></Setter> </Style> </StackPanel.Resources> <TextBlock Text="我使用的是StackPanel內部的樣式,不受全域樣式資源檔控制" /> <TextBlock Text="我使用的是StackPanel內部的樣式,不受全域樣式資源檔控制" /> </StackPanel>
以上為個人觀點,如有問題,請指正。
Windows Phone 為指定容器內的元素設定樣式