大佬教程收集整理的这篇文章主要介绍了Silverlight之资源样式的应用(5),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1.样式关键点
<UserControl.resources>
<!-- 将样式应用于按钮Button-->
<Style TargetType="Button" x:Key="t1">
<!-- 设置Button上字体色为蓝色到红色渐变-->
<Setter Property="Foreground">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="0.5,1">
<GradientStop Color="Blue" Offset="0"/>
<GradientStop Color="Red" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<!-- 设置Button背景色为红色-->
<Setter Property="BACkground">
<Setter.Value >
red
</Setter.Value>
</Setter>
<!-- 设置Button字体字号为22-->
<Setter Property="FontSize" Value="22"></Setter>
</Style>
<!-- 将样式应用于TextBox-->
<Style TargetType="TextBox" x:Key="txt1">
<!-- 设置TextBox背景色为蓝色-->
<Setter Property="BACkground" Value="blue"></Setter>
</Style>
<!-- 将样式继承关系-->
<Style TargetType="TextBox" x:Key="txt2" BasedOn="{Staticresource txt1}">
<!-- 设置TextBox背景色为蓝色-->
<Setter Property="FontSize" Value="12"></Setter>
<!-- 覆盖父样式-->
<Setter Property="BACkground" Value="Red"></Setter>
</Style>
<LinearGradientBrush x:Key="l1">
<GradientStop Color="Blue" Offset="0"></GradientStop>
<GradientStop Color="Black" Offset="1"></GradientStop>
</LinearGradientBrush>
</UserControl.resources>
2.应用样式代码
<Grid x:Name="LayoutRoot" BACkground="White">
<Grid.RowDeFinitions >
<RowDeFinition></RowDeFinition>
<RowDeFinition></RowDeFinition>
<RowDeFinition></RowDeFinition>
</Grid.RowDeFinitions>
<Grid.columnDeFinitions>
<columnDeFinition></columnDeFinition>
<columnDeFinition></columnDeFinition>
<columnDeFinition></columnDeFinition>
</Grid.columnDeFinitions>
<!-- TextBox应用样式-->
<TextBox Style="{Staticresource txt1}" Height="30" Width="100" Grid.Row="0" Grid.column="0"></TextBox>
<!-- TextBox不应用样式-->
<TextBox Height="30" Width="100" Grid.Row="1" Grid.column="0"></TextBox>
<!-- TextBox应用继承的样式-->
<TextBox Height="30" Width="100" Grid.Row="2" Grid.column="0" Text="TextBox应用继承的样式" Style="{Staticresource txt2}"></TextBox>
<!-- Button不应用样式-->
<Button x:Name="b2" Height="30" Width="100" Grid.Row="0" Grid.column="1" Content="bt1"></Button>
<Button x:Name="b3" Height="30" Width="100" Grid.Row="1" Grid.column="1" Content="bt1"></Button>
<Button x:Name="b4" Height="30" Width="100" Grid.Row="2" Grid.column="1" Content="中华人民共和国" Foreground="{Staticresource l1}"></Button>
<!-- Button应用样式-->
<Button x:Name="b1" Grid.Row="2" Grid.column="2" Content="得到资源值" Style="{Staticresource t1}" Click="b1_Click" Margin="16,35,23"></Button>
</Grid>
3.说明
1)可以使用X:key。也可以使用X:Name来定义资源。
不同的是,使用X:Name必须是唯一的,使用X:key在一个范围内必须唯一,但是在小范围之外是可以重复。
关键在cs代码方法如果是X:Name,可以直接把name当作cs的对象来使用,但是如果是key,必须使用this.resources["l1"];来获得属性
2)样式Style基本是为特定的元素类型分配的属性集合,除了有Key外,还有一个TargetType属性,设置作用的控件类型。
3)样式的继承使用BaSEOn={Staticresource btnStylE}
继承父样式以后,可以直接使用父样式中的定义,如果有重复的定义,子样式会覆盖父样式的内容
3.执行效果
补充文档
新增样式代码
<UserControl xmlns:my="clr-namespace:SLUI" x:Class="SLUI.MainPage" xmlns="http://scheR_191_11845@as.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://scheR_191_11845@as.microsoft.com/winfx/2006/xaml" xmlns:d="http://scheR_191_11845@as.microsoft.com/expression/blend/2008" xmlns:mc="http://scheR_191_11845@as.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="600" d:DesignWidth="800" xmlns:sdk="http://scheR_191_11845@as.microsoft.com/winfx/2006/xaml/presentation/sdk"> <Grid x:Name="LayoutRoot" Style="{Staticresource GridStylE}"> <Grid.columnDeFinitions > <columnDeFinition ></columnDeFinition> </Grid.columnDeFinitions> <Grid.RowDeFinitions > <RowDeFinition Height="Auto" MinHeight="600"></RowDeFinition> </Grid.RowDeFinitions> <Border Name="borderAll" CornerRadius="10" Height="500" Style="{Staticresource BorderstylE}"> <StackPanel Height="500" HorizontalAlignment="Center" Name="stackPanel3" VerticalAlignment="Top" Style="{Staticresource StackPanelStylE}" Orientation="Vertical" FlowDirection="RightToLeft" > <!--大标题高50--> <StackPanel Name="stackPanelBigtitle" Style="{Staticresource StackPanelBigtitleStylE}"> <TextBlock Name="txtBigtitle" Text="借款申请单" Style="{Staticresource TextBlockBigtitleStylE}"/> </StackPanel> <!--小标题高30--> <StackPanel Name="stackPanel1" Style="{Staticresource StackPanelsmalltitleStylE}"> <TextBlock Name="txttitle" Text="基本信息" Style="{Staticresource TextBlocksmalltitleStylE}"/> </StackPanel> <!--工具栏30--> <StackPanel Name="stackPanel2" Style="{Staticresource StackPanelToolStylE}" > <Button Content="取消" Name="button2" Width="75" Style="{Staticresource ButtonStylE}"/> <Button Content="保存" Name="btnSave" Width="75" Style="{Staticresource ButtonStylE}"/> </StackPanel> <!--内容100--> <Border Height="100" Name="border1" Style="{Staticresource BorderContentStylE}" > <StackPanel Height="99" Name="stackPanelContent1" Style="{Staticresource StackPanelContentStylE}"> <Grid Height="102" FlowDirection="LeftToRight"> <Grid.columnDeFinitions> <columnDeFinition/> <columnDeFinition/> <columnDeFinition/> <columnDeFinition/> </Grid.columnDeFinitions> <Grid.RowDeFinitions> <RowDeFinition/> <RowDeFinition/> <RowDeFinition/> <RowDeFinition/> </Grid.RowDeFinitions> <sdk:Label Margin="27,6,51,3" d:LayoutOverrides="Height" Content="申请单编号"/> <sdk:Label Grid.column="2" Margin="28,10,3" d:LayoutOverrides="Height" Content="申请单名称"/> <sdk:Label Margin="27,5,4" Grid.Row="1" d:LayoutOverrides="Height" Content="项目编号"/> <sdk:Label Grid.column="2" Margin="28,26,4" Grid.Row="1" d:LayoutOverrides="Height" Content="项目名称"/> <sdk:Label Margin="27,4,43,5" Grid.Row="2" d:LayoutOverrides="Height" Content="业务类别"/> <sdk:Label Grid.column="2" Margin="28,42,0" Grid.Row="2" Content="币种"/> <sdk:Label Margin="27,3,59,6" Grid.Row="3" d:LayoutOverrides="Height" Content="借款单位"/> <sdk:Label Grid.column="2" Margin="28,6" Grid.Row="3" d:LayoutOverrides="Height" Content="是否合作项目"/> <ComboBox Grid.column="1" Margin="5,2,1,3" Grid.Row="2"/> <ComboBox Grid.column="3" Margin="-14,20,2" Grid.Row="2"/> <checkBox Content="" Grid.column="3" Margin="-13,-2" Grid.Row="3"/> <ComboBox Grid.column="1" Margin="5,4" Grid.Row="3" Height="21" VerticalAlignment="Bottom"/> <TextBox Grid.column="1" Margin="5,2" textwrapping="Wrap" Text=""/> <TextBox Grid.column="3" Margin="-14,1" textwrapping="Wrap" Text=""/> <TextBox Grid.column="1" Margin="5,1" Grid.Row="1" textwrapping="Wrap" Text="" d:LayoutOverrides="Height"/> <TextBox Grid.column="3" Margin="-14,1" Grid.Row="1" textwrapping="Wrap" Text=""/> </Grid> </StackPanel> </Border> <!--小标题高30--> <StackPanel Name="stackPaneltitle2" Style="{Staticresource StackPanelsmalltitleStylE}"> <TextBlock Name="txttitle2" Text="合作方信息" Style="{Staticresource TextBlocksmalltitleStylE}"/> </StackPanel> <!--工具栏30--> <StackPanel Name="stackPanelTool2" Style="{Staticresource StackPanelToolStylE}"> <Button Content="添加合作方信息" Name="btnSave2" Width="100" Style="{Staticresource ButtonStylE}"/> </StackPanel> <!--内容100--> <Border Height="100" Name="border2" Style="{Staticresource BorderContentStylE}"> <StackPanel Height="100" Name="stackPanelContent2" Style="{Staticresource StackPanelContentStylE}"> <sdk:DataGrid Height="100" BACkground="White" FlowDirection="LeftToRight"> <sdk:DataGrid.columns> <sdk:DataGridcheckBoxcolumn Header="选择"/> <sdk:DataGridTextcolumn Header="合作方名称"/> <sdk:DataGridTextcolumn Header="出资比例"/> <sdk:DataGridTextcolumn Header="出资金额"/> </sdk:DataGrid.columns> </sdk:DataGrid></StackPanel> </Border> <!--小标题高30--> <StackPanel Name="stackPaneltitle3" Style="{Staticresource StackPanelsmalltitleStylE}"> <TextBlock Name="txttitle3" Text="支付信息" Style="{Staticresource TextBlocksmalltitleStylE}"/> </StackPanel> <!--工具栏30--> <!--内容100--> <Border Height="100" Name="border3" Style="{Staticresource BorderContentStylE}"> <StackPanel Height="100" Name="stackPanelContent3" Style="{Staticresource StackPanelContentStylE}"></StackPanel> </Border> </StackPanel> </Border> </Grid> </UserControl>
效果:
以上是大佬教程为你收集整理的Silverlight之资源样式的应用(5)全部内容,希望文章能够帮你解决Silverlight之资源样式的应用(5)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。