首先道个歉,这两天家里断网,一直没办法更新。
4. Border
边框是指在另一个对象的周围绘制边框,背景或者同事绘制二者的控件,在xaml中的语法如下:
<Border> 子控件对象 </Border>
Border控件通常会是其他空间的一个外观显示的辅助控件,它很少单独使用。一般都是一个组合。一个border中只能包含于一个子对象。如果想要在多个对象中放置一个边框,则要添加容器,如面板stackpanel.
常用的方法如下:
BorderBrush 获取或者设置用于创建边框的brush;
BorderThickness 或者或者设置边框的粗细
Child 或者或者设置要在其周围ie绘制边框的子元素
Padding 获取或者设置边框与子对象之间的距离
示例代码
椭圆形边框按钮:
<Border BorderBrush="#FF00BF23" BorderThickness="10" HorizontalAlignment="Center" Height="118" VerticalAlignment="Top" Width="480" Background="#FFE41C6E" CacheMode="BitmapCache" Cursor="SizeNWSE" FlowDirection="RightToLeft" CornerRadius="40">
<Button Content="Button" Background="#FFB1CB3D"/>
</Border>
单击后显示的边框:
<Border x:Name="textbr" BorderThickness="10" Margin="-6,143,6,245">
<Border.BorderBrush>
<!--opacity 代表透明度为0-->
<SolidColorBrush Color="Red" Opacity="0"/>
</Border.BorderBrush>
<Button Content="点击我一下" Click="Button_Click_1"/>
</Border>
private void Button_Click_1(object sender, RoutedEventArgs e){
//设置边框的透明度为100%
textbr.BorderBrush.Opacity = 1;
}
5. 超链接(HyperlinkButton)
超链接控件,该控件在xaml中的格式如下:
<HyperlinkButton ...../>
<HyperlinkButton>属性</HyperlinkButton>
<HyperlinkButton>内容</HyperlinkButton>
该类继承自buttonBase。大部分特性和button是一样的。不过他多了一个NavigateUri的属性,通过URI的绝对地址或者是相对地址赋值给NavigateUri属性,就可以轻松实现定位。如果URI设置的为外部网页,则可以使用targetName的属性指定应在其中打开页面的目标窗口或者框架。如果URI设置为同一个应用程序中的内容,可以使用targetName属性指定要到行道的对象的名称,不必处理HyperlinkButton的单击事件,就可以定位到。
示例代码
打开网页和应用程序的其他页面
<HyperlinkButton Content="转谷歌浏览器" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="106,84,0,0" Height="59" Width="229" Background="#FF56B686" Foreground="#FF8400B6" FontSize="32" NavigateUri="http://google.com" TargetName="_blank"/>
<HyperlinkButton Content="转内部数据" HorizontalAlignment="Left" Margin="130,244,0,0" VerticalAlignment="Top" FontSize="32" Height="89" Width="197" NavigateUri="/Page.xaml"/>
6. 单选按钮
RadioButton是一个单选按钮的控件,比如选择男女的时候就会用到。用户可以从一组数据中选择一个出来。 控件在xaml语法如下:
<RadioButton .../>
<RadioButton >属性</RadioButton>
<RadioButton >显示内容</RadioButton>
示例代码
性别的选择:
<RadioButton Content="男" HorizontalAlignment="Left" Margin="62,370,0,0" Name="boy"
VerticalAlignment="Top" IsChecked="true" GroupName="sex"/>
<RadioButton Content="女" HorizontalAlignment="Left" Margin="186,372,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.642,0.722" Name="girl" GroupName="sex" />
注意:他们是使用GroupName来分组,使用IsChecked来确认是否选中。
7. 复选框
checkBox,用于表示用户可以选中或者是不选中的按钮。在xaml语法如下;
<CheckBox.../>
<CheckBox>显示内容</CheckBox>
checkBox允许用户从选项卡里多选,不互相排斥。他继承自ToggleButton,具有三种状态:选中,未选中,不确定。他是通过IsThreeState属性来获取或者设置指示控件是支持两种状态还是三中状态的值,通过IsCheckedz属性来获取或者设置是否选中了复选框。需要注意的是,如果IsThreeState属性设置为true,则IsChecked属性将会为选中或者不确定状态返回true。
示例代码
判断Checkbox是否被选中
<CheckBox x:Name="chk_one" Content="CheckBox" HorizontalAlignment="Left"
Foreground="Orange" FontFamily="Geogia" Margin="34,56,0,0" VerticalAlignment="Top" />
<CheckBox x:Name="chk_two" Content="CheckBox" HorizontalAlignment="Left" IsChecked="true"
Checked="chk_two_Checked_1" Unchecked="chk_two_Unchecked_1" Margin="30,112,0,0" VerticalAlignment="Top"/>
private void chk_two_Checked_1(object sender, RoutedEventArgs e){
//为了程序的健壮性,先判断是否为空,因为首次显示是不被初始化
if (chk_one != null)
chk_one.Content = "checked";
}
private void chk_two_Unchecked_1(object sender, RoutedEventArgs e){
if (chk_one != null)
chk_one.Content = "checked";
}