Windows Phone 爲指定容器內的元素設置樣式

在Windows Phone中設置元素樣式有多種
拿TextBlock來講
一、咱們能夠直接在控件上設置:
  <TextBlock  Text="自身樣式設置"  Width="270" FontSize="20" Foreground="#FF6B6A6A"/>
二、也能夠這樣:在頁面的靜態資源中設置
<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" />

 

三、若是要設置當前頁面的全部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" />

 

四、若是整個項目中都想使用,那麼就將2或者3中介紹的資源放在App.Xaml中的 <Application.Resources> </Application.Resources>的節點中
五、局部樣式怎麼設置呢?好比:設置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>
 以上爲我的觀點,若有問題,請指正。
相關文章
相關標籤/搜索