白日放歌须纵酒,青春作伴好还乡。这篇文章主要讲述万里征程——Windows App开发控件大集合1相关的知识,希望能为你提供帮助。
加入控件的方式有多种。大家更喜欢哪一种呢?
1)使用诸如 Blend for Visual Studio 或 Microsoft Visual Studio XAML 设计器的设计工具。
2)在 Visual Studio XAML 编辑器中将控件加入到 XAML 标记中。
3)在代码中加入控件。 当应用执行时会看到你在代码中加入的控件。但在 Visual Studio XAML 设计器中看不到。
前面我们已经用过了Grid、Button等控件,如今就来系统地看看关于控件的一些属性、事件等等。
毫无疑问第一步就是要来加入控件,那么加入控件有哪几种方式呢。
前面我们都是直接在XAML中写的控件或者从工具箱中拖拽出来。
事实上还有2种,一种比較复杂但我们以后也会用到,那就是在C#后台代码中加入控件;还有一种就是在Blend for Visual Studio中拖拽控件了。
后者的功能也很强大,比方要使用动画之类的,这个设计器就能发挥作用了。
控件的属性相比大家都已经会用了,一来能够直接在XAML中加入属性,二来能够在属性视图中加入和改动属性。
文章图片
假设要加入和改动事件呢,相同在属性视图中,点击右上角的闪电图标就可以。假设要加入Click事件,那么在Click的输入框中输入好事件名称后直接按Enter就可以。此时VS就会自己主动跳转到C#后台代码中。第一个參数sender是对处理程序所附加的对象的应用。第二參数是事件数据,它通常在签名中显示为e參数。
【万里征程——Windows App开发控件大集合1】
private void btnSetStyle_Click(object sender, RoutedEventArgs e)
{
Button b = (Button)sender;
b.Height = 400;
b.Width = 320;
}
上面的这段代码这会将所点击的Button的高设置为400,宽设置为320;除了这样的方式外,也能够按例如以下操作,当中btnSetStyle是当前Button的名字:
private void btnSetStyle_Click(object sender, RoutedEventArgs e)
{
btnSetStyle.Height = 400;
btnSetStyle.Width = 320;
}
除此之外,我们也能够不在XAML中定义Click事件,依照例如以下操作也能够达到相同的效果,它会将两个事件相互关联。
public MainPage()
{
this.InitializeComponent();
btnSetStyle.Click += new RoutedEventHandler(btnSetStyle_Click);
}private void btnSetStyle_Click(object sender, RoutedEventArgs e)
{
btnSetStyle.Height = 400;
btnSetStyle.Width = 320;
}
前面我们已经了解了假设加入控件、加入/改动属性、加入/改动事件。也了解一下控件的样式。尽管说到样式大家想到的可能是css。想必大家都玩过2048吧,游戏中有很多很多的方格,那么这些方格的样式会不会一个一个去定义呢,当然不是啦,能够直接用样式资源来定位到全部的Button。后面我们也会来实践一下怎样写一个2048小游戏的。
下面是我写的2048里面的样式啦,
<
Page.Resources>
<
Style TargetType="Button">
<
Setter Property="FontWeight" Value="https://www.songbingjia.com/android/Bold"/>
<
Setter Property="FontSize" Value="https://www.songbingjia.com/android/40"/>
<
Setter Property="HorizontalAlignment" Value="https://www.songbingjia.com/android/Center">
<
/Setter>
<
Setter Property="VerticalAlignment" Value="https://www.songbingjia.com/android/Center">
<
/Setter>
<
Setter Property="Background" Value="https://www.songbingjia.com/android/Gray">
<
/Setter>
<
Setter Property="Width" Value="https://www.songbingjia.com/android/100">
<
/Setter>
<
Setter Property="Height" Value="https://www.songbingjia.com/android/100">
<
/Setter>
<
Setter Property="Template">
<
Setter.Value>
<
ControlTemplate TargetType="Button">
<
Grid x:Name="Grid" Background="Transparent">
<
Border x:Name="Border" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Background="{TemplateBinding Background}" >
<
ContentPresenter x:Name="ContentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="Center"VerticalAlignment="Center"/>
<
/Border>
<
/Grid>
<
/ControlTemplate>
<
/Setter.Value>
<
/Setter>
<
/Style>
<
/Page.Resources>
可是这里也有一个问题,假设我们有10个Button控件,却仅仅想当中8个用到这些定义。另外2个想用还有一种控件,那该怎么办呢?
将样式定义为资源。事实上是有2中方式的。
一种就是直接用Style的TargetType属性来定义到全部的目标控件。
还有一种则除了用TargetType属性外。还能够用x:key属性,然后再详细的控件中庸显式的关键字StaticResource来设置详细的Style属性。
<
Page.Resources>
<
Style TargetType="Button">
<
Setter Property="FontStyle" Value="https://www.songbingjia.com/android/Oblique" />
<
Setter Property="FontSize" Value="https://www.songbingjia.com/android/20" />
<
Setter Property="BorderBrush" Value="https://www.songbingjia.com/android/Green" />
<
Setter Property="BorderThickness" Value="https://www.songbingjia.com/android/5" />
<
Setter Property="Foreground" Value="https://www.songbingjia.com/android/Orange" />
<
Setter Property="Height" Value="https://www.songbingjia.com/android/80"/>
<
Setter Property="Width" Value="https://www.songbingjia.com/android/160"/>
<
/Style>
<
Style x:Key="OtherStyle" TargetType="Button">
<
Setter Property="FontStyle" Value="https://www.songbingjia.com/android/Italic" />
<
Setter Property="FontSize" Value="https://www.songbingjia.com/android/16" />
<
Setter Property="Foreground" Value="https://www.songbingjia.com/android/Lavender" />
<
Setter Property="Height" Value="https://www.songbingjia.com/android/160"/>
<
Setter Property="Width" Value="https://www.songbingjia.com/android/320"/>
<
Setter Property="Opacity" Value="https://www.songbingjia.com/android/0.2"/>
<
/Style>
<
/Page.Resources>
详细效果见下图,当中Opacity属性为透明度。
文章图片
大家都知道类能够继承,样式也是能够继承的。
尽管这篇博客内容比較少,但更精彩的内容还在后面呢。感谢大家的支持!
感谢您的訪问,希望对您有所帮助。
欢迎大家关注或收藏、评论或点赞。
为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp
推荐阅读
- Android 6.0 Changes
- 开源的图像滤镜库----for Android
- Sqoop与Hadoop生态系统的集成
- Sqoop安装
- Sqoop导入
- Sqoop导出
- Sqoop教程
- RDBMS与HBase的区别
- Pig UDF(用户定义函数)