在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>
以上为我的观点,若有问题,请指正。