博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
稳扎稳打Silverlight(3) - 2.0控件之Border, Button, Calendar, Canvas, CheckBox, ComboBox
阅读量:6595 次
发布时间:2019-06-24

本文共 10046 字,大约阅读时间需要 33 分钟。





稳扎稳打Silverlight(3) - 2.0控件之Border, Button, Calendar, Canvas, CheckBox, ComboBox
作者:
介绍
Silverlight 2.0 控件一览:Border, Button, Calendar, Canvas, CheckBox, ComboBox 
在线DEMO
 
示例
1、Border.xaml
<UserControl x:Class="Silverlight20.Control.Border" 

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

        <StackPanel HorizontalAlignment="Left"> 

                 

                <!-- 

                BorderThickness - 边框的宽度(像素值:上下左右;左右,上下;左,上,右,下) 

                BorderBrush - 边框的颜色 

                CornerRadius - 边框角的半径 

                --> 

                <Border BorderThickness="1,3,5,7" BorderBrush="Red" CornerRadius="10" Width="120" Margin="5"> 

                        <TextBlock Text="红色Border" ToolTipService.ToolTip="红色Border" TextAlignment="Center" /> 

                </Border> 


                <!-- 

                Border.BorderBrush - 继承自 System.Windows.Media.Brush 的对象 

                --> 

                <Border BorderThickness="3" CornerRadius="10" Width="120" Margin="5"> 

                        <TextBlock Text="红色Border" ToolTipService.ToolTip="红色Border" TextAlignment="Center" /> 

                        <Border.BorderBrush> 

                                <ImageBrush ImageSource="http://silverlight.net/Themes/silverlight/images/logo.jpg" /> 

                        </Border.BorderBrush> 

                </Border> 


        </StackPanel> 

</UserControl>
 
 
2、Button.xaml
<UserControl x:Class="Silverlight20.Control.Button" 

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

        <StackPanel HorizontalAlignment="Left" Width="400"> 


                <!-- 

                Content - 按钮上显示的内容 

                Click - 按钮的单击事件 

                Cursor - 鼠标移动到按钮上面时,鼠标指针的样式 

                        Arrow - 箭头 

                        Hand - 手形    

                        Wait - 沙漏 

                        IBeam - “I”字形    

                        Stylus - 点 

                        Eraser - 橡皮 

                        None - 无 

                Padding - 容器内的内容与容器边缘的填充距离(像素值:上下左右;左右,上下;左,上,右,下) 

                --> 

                <Button Tag="我是Button" Content="我是Button" Cursor="Eraser" Click="Button_Click" Padding="5" Margin="5" /> 


                <!-- 

                IsEnabled - 按钮是否有效 

                --> 

                <Button Tag="无效Button" Content="无效Button" IsEnabled="False" Click="Button_Click" Margin="5" /> 


                <!-- 

                Button.Content - 按钮上显示的内容 

                ClickMode - 触发单击事件的类型 [System.Windows.Controls.ClickMode枚举] 

                        ClickMode.Press - 鼠标左键单击 

                        ClickMode.Release - 鼠标左键单击并放开 

                        ClickMode.Hover - 鼠标经过 

                --> 

                <Button Tag="图片Button" ClickMode="Release" Click="Button_Click" Margin="5"> 

                        <Button.Content> 

                                <Image Source="/Silverlight20;component/Images/Logo.jpg" /> 

                        </Button.Content> 

                </Button> 


        </StackPanel> 

</UserControl>
 
Button.xaml.cs
InBlock.gif
using System; 

InBlock.gif
using System.Collections.Generic; 

InBlock.gif
using System.Linq; 

InBlock.gif
using System.Net; 

InBlock.gif
using System.Windows; 

InBlock.gif
using System.Windows.Controls; 

InBlock.gif
using System.Windows.Documents; 

InBlock.gif
using System.Windows.Input; 

InBlock.gif
using System.Windows.Media; 

InBlock.gif
using System.Windows.Media.Animation; 

InBlock.gif
using System.Windows.Shapes; 

InBlock.gif 

InBlock.gif
using System.Windows.Browser; 

InBlock.gif 

InBlock.gif
namespace Silverlight20.Control 

InBlock.gif

InBlock.gif        
public partial 
class Button : UserControl 

InBlock.gif        { 

InBlock.gif                
public Button() 

InBlock.gif                { 

InBlock.gif                        InitializeComponent(); 

InBlock.gif                } 

InBlock.gif 

InBlock.gif                
private 
void Button_Click(
object sender, RoutedEventArgs e) 

InBlock.gif                { 

InBlock.gif                        HtmlWindow html = HtmlPage.Window; 

InBlock.gif                        html.Alert(((System.Windows.Controls.Button)sender).Tag.ToString() + 
" 被单击了"); 

InBlock.gif                } 

InBlock.gif        } 

InBlock.gif}
 
 
3、Calendar.xaml
<!-- 

Calendar控件的命名空间和其他控件一样,都是在System.Windows.Controls下 

但是其是在System.Windows.Controls.dll程序集中定义的 

所以要引入相应的xml命名空间 

--> 

<UserControl x:Class="Silverlight20.Control.Calendar" 

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 

        xmlns:basics="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"> 

        <StackPanel HorizontalAlignment="Left"> 

                <TextBox x:Name="txtMsg" Margin="5"    /> 

                 

                <!-- 

                SelectedDatesChanged - 选中日期后所触发的事件 

                DisplayDateEnd - 此日期之后的日期不予显示    

                DisplayDateStart - 此日期之前的日期不予显示 

                FirstDayOfWeek - 控件所显示的每星期的第一天为星期几 [System.DayOfWeek枚举] 

                DisplayMode - 控件的显示模式 [System.Windows.Controls.DisplayMode枚举] 

                        DisplayMode.Month - 标题显示年月,内容显示日期。默认值 

                        DisplayMode.Year - 标题显示年,内容显示月 

                        DisplayMode.Decade - 标题显示一个十年的区间,内容显示年 

                IsTodayHighlighted - 是否高亮显示今天的日期 

                --> 

                <basics:Calendar x:Name="calendar" Margin="5" FirstDayOfWeek="Monday" 

                        SelectedDatesChanged="calendar_SelectedDatesChanged"> 

                </basics:Calendar> 

                 

                <StackPanel Orientation="Horizontal"> 

                         

                        <CheckBox Content="禁止选择今天以前的日期" Margin="5" 

                                Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" /> 


                        <RadioButton GroupName="selectionMode" x:Name="SingleDate" Content="可选单一日期" Margin="5"                                

                                Checked="selectionMode_Changed" /> 


                        <RadioButton GroupName="selectionMode" x:Name="None" Content="不可选日期" Margin="5"                                

                                Checked="selectionMode_Changed" /> 


                        <RadioButton GroupName="selectionMode" x:Name="SingleRange" Content="可选连续日期(shift)" Margin="5"                                

                                Checked="selectionMode_Changed" /> 


                        <RadioButton GroupName="selectionMode" x:Name="MultipleRange" Content="可选多个日期(ctrl)" Margin="5"                                

                                Checked="selectionMode_Changed" /> 

                         

                </StackPanel> 

                 

        </StackPanel> 

</UserControl>
 
Calendar.xaml.cs
InBlock.gif
using System; 

InBlock.gif
using System.Collections.Generic; 

InBlock.gif
using System.Linq; 

InBlock.gif
using System.Net; 

InBlock.gif
using System.Windows; 

InBlock.gif
using System.Windows.Controls; 

InBlock.gif
using System.Windows.Documents; 

InBlock.gif
using System.Windows.Input; 

InBlock.gif
using System.Windows.Media; 

InBlock.gif
using System.Windows.Media.Animation; 

InBlock.gif
using System.Windows.Shapes; 

InBlock.gif 

InBlock.gif
namespace Silverlight20.Control 

InBlock.gif

InBlock.gif        
public partial 
class Calendar : UserControl 

InBlock.gif        { 

InBlock.gif                
public Calendar() 

InBlock.gif                { 

InBlock.gif                        InitializeComponent(); 

InBlock.gif                } 

InBlock.gif 

InBlock.gif                
private 
void calendar_SelectedDatesChanged(
object sender, SelectionChangedEventArgs e) 

InBlock.gif                { 

InBlock.gif                        
// Calendar.SelectedDate - 选中的日期 

InBlock.gif                        
// Calendar.SelectedDates - 选中的多个日期集合 

InBlock.gif 

InBlock.gif                        
this.txtMsg.Text = ""; 

InBlock.gif                        
foreach (DateTime dt 
in calendar.SelectedDates) 

InBlock.gif                        { 

InBlock.gif                                
this.txtMsg.Text += dt.ToString(
"yyyy-MM-dd"); 

InBlock.gif                                
this.txtMsg.Text += 
" "

InBlock.gif                        } 

InBlock.gif                } 

InBlock.gif 

InBlock.gif                
private 
void CheckBox_Checked(
object sender, RoutedEventArgs e) 

InBlock.gif                { 

InBlock.gif                        
if (
this.calendar.SelectedDate != 
null && 
this.calendar.SelectedDate < DateTime.Now.Date) 

InBlock.gif                                
this.calendar.SelectedDate = DateTime.Now; 

InBlock.gif 

InBlock.gif                        
// Calendar.BlackoutDates - 不允许选择的日期集合 

InBlock.gif                        
// Calendar.BlackoutDates.AddDatesInPast() - 禁止选择今天之前的日期 

InBlock.gif                        
this.calendar.BlackoutDates.AddDatesInPast(); 

InBlock.gif                } 

InBlock.gif 

InBlock.gif                
private 
void CheckBox_Unchecked(
object sender, RoutedEventArgs e) 

InBlock.gif                { 

InBlock.gif                        
// Calendar.BlackoutDates.Clear() - 清除 不允许选择的日期集合 的设置 

InBlock.gif                        
this.calendar.BlackoutDates.Clear(); 

InBlock.gif                } 

InBlock.gif 

InBlock.gif                
private 
void selectionMode_Changed(
object sender, RoutedEventArgs e) 

InBlock.gif                { 

InBlock.gif                        
// CalendarSelectionMode.None - 禁止选择日期 

InBlock.gif                        
// CalendarSelectionMode.SingleRange - 可以选择多个日期,连续日期(Shift键配合) 

InBlock.gif                        
// CalendarSelectionMode.MultipleRange - 可以选择多个日期,任意日期(Ctrl键配合) 

InBlock.gif                        
// CalendarSelectionMode.SingleDate - 只能选择一个日期 

InBlock.gif                        
switch (((System.Windows.Controls.RadioButton)sender).Name) 

InBlock.gif                        { 

InBlock.gif                                
case 
"None"

InBlock.gif                                        
this.calendar.SelectionMode = CalendarSelectionMode.None; 

InBlock.gif                                        
break

InBlock.gif                                
case 
"SingleRange"

InBlock.gif                                        
this.calendar.SelectionMode = CalendarSelectionMode.SingleRange; 

InBlock.gif                                        
break

InBlock.gif                                
case 
"MultipleRange"

InBlock.gif                                        
this.calendar.SelectionMode = CalendarSelectionMode.MultipleRange; 

InBlock.gif                                        
break

InBlock.gif                                
default

InBlock.gif                                        
this.calendar.SelectionMode = CalendarSelectionMode.SingleDate; 

InBlock.gif                                        
break

InBlock.gif                        } 

InBlock.gif                } 

InBlock.gif        } 

InBlock.gif}
 
 
4、Canvas.xaml
<UserControl x:Class="Silverlight20.Control.Canvas" 

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" HorizontalAlignment="Left"> 

         

        <!-- 

        Canvas - 绝对布局模式 

                Canvas.Left - 与上一层 Canvas 的 Y轴 间的距离,左上角为原点 

                Canvas.Top - 与上一层 Canvas 的 X轴 间的距离,左上角为原点 

        --> 

        <Canvas Background="Red" Width="100" Height="100"> 

                 

                <Canvas Background="Green" Width="100" Height="100" Canvas.Left="120" Canvas.Top="120" > 

                        <TextBlock Text="TextBlock" Canvas.Top="20" /> 

                </Canvas> 

                 

        </Canvas> 

         

</UserControl>
 
5、CheckBox.xaml 
<UserControl x:Class="Silverlight20.Control.CheckBox" 

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

        <StackPanel> 


                <!-- 

                IsChecked - 是否被选中 

                --> 

                <CheckBox x:Name="chk1" Content="我是CheckBox" IsChecked="False" Margin="5" /> 


                <!-- 

                IsThreeState - 是否是 有3个状态 的CheckBox 

                        false - 通常的两状态。默认值 

                        true - 有3个状态,分别为:true, false, null。也就是说 CheckBox.IsChecked 是 bool? 类型 

                --> 

                <CheckBox x:Name="chk2" Content="红色的三状态的CheckBox" Background="Red" IsThreeState="True" Margin="5" /> 


                <!-- 

                IsEnabled - CheckBox是否有效 

                --> 

                <CheckBox x:Name="chk3" Content="无效的CheckBox" IsEnabled="False" Margin="5"/> 


                <!-- 

                CheckBox.Content - CheckBox所对应的内容 

                Checked - 被选中后所触发的事件 

                Unchecked - 被取消选中后所触发的事件 

                Click - 被单击后所触发的事件 

                --> 

                <CheckBox x:Name="chk4" Checked="Button_Click" Margin="5"> 

                        <CheckBox.Content> 

                                <Image Source="/Silverlight20;component/Images/Logo.jpg" Width="100" /> 

                        </CheckBox.Content> 

                </CheckBox> 


                <Button Content="各个CheckBox的选中状态" Width="200" HorizontalAlignment="Left" Click="Button_Click" Margin="5" /> 


        </StackPanel> 

</UserControl>
 
CheckBox.xaml.cs
InBlock.gif
using System; 

InBlock.gif
using System.Collections.Generic; 

InBlock.gif
using System.Linq; 

InBlock.gif
using System.Net; 

InBlock.gif
using System.Windows; 

InBlock.gif
using System.Windows.Controls; 

InBlock.gif
using System.Windows.Documents; 

InBlock.gif
using System.Windows.Input; 

InBlock.gif
using System.Windows.Media; 

InBlock.gif
using System.Windows.Media.Animation; 

InBlock.gif
using System.Windows.Shapes; 

InBlock.gif 

InBlock.gif
using System.Windows.Browser; 

InBlock.gif 

InBlock.gif
namespace Silverlight20.Control 

InBlock.gif

InBlock.gif        
public partial 
class CheckBox : UserControl 

InBlock.gif        { 

InBlock.gif                
public CheckBox() 

InBlock.gif                { 

InBlock.gif                        InitializeComponent(); 

InBlock.gif                } 

InBlock.gif 

InBlock.gif                
private 
void Button_Click(
object sender, RoutedEventArgs e) 

InBlock.gif                { 

InBlock.gif                        HtmlWindow html = HtmlPage.Window; 

InBlock.gif                        html.Alert(
string.Format(
"chk1: {0}\r\nchk2: {1}\r\nchk3: {2}\r\nchk4: {3}",    

InBlock.gif                                chk1.IsChecked, chk2.IsChecked, chk3.IsChecked, chk4.IsChecked)); 

InBlock.gif                } 

InBlock.gif        } 

InBlock.gif}
 
 
6、ComboBox.xaml
<UserControl x:Class="Silverlight20.Control.ComboBox" 

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

        <StackPanel HorizontalAlignment="Left"> 

                 

                <!-- 

                XAML方式构造ComboBox 

                --> 

                <ComboBox x:Name="cbo" Width="200" Margin="5"> 

                        <ComboBoxItem Content="ComboBoxItem1" /> 

                        <ComboBoxItem Content="ComboBoxItem2" /> 

                        <ComboBoxItem Content="ComboBoxItem3" /> 

                </ComboBox> 

                 

                <!-- 

                后台邦定方式构造ComboBox 

                DisplayMemberPath - 数据源中需要被显示出来的字段名称 

                MaxDropDownHeight - 下拉框的最大下拉高度 

                --> 

                <ComboBox x:Name="cbo2" DisplayMemberPath="Name" MaxDropDownHeight="100" Width="200" Margin="5" /> 

                 

        </StackPanel> 

</UserControl>
 
ComboBox.xaml.cs
InBlock.gif
using System; 

InBlock.gif
using System.Collections.Generic; 

InBlock.gif
using System.Linq; 

InBlock.gif
using System.Net; 

InBlock.gif
using System.Windows; 

InBlock.gif
using System.Windows.Controls; 

InBlock.gif
using System.Windows.Documents; 

InBlock.gif
using System.Windows.Input; 

InBlock.gif
using System.Windows.Media; 

InBlock.gif
using System.Windows.Media.Animation; 

InBlock.gif
using System.Windows.Shapes; 

InBlock.gif 

InBlock.gif
namespace Silverlight20.Control 

InBlock.gif

InBlock.gif        
public partial 
class ComboBox : UserControl 

InBlock.gif        { 

InBlock.gif                
public ComboBox() 

InBlock.gif                { 

InBlock.gif                        InitializeComponent(); 

InBlock.gif 

InBlock.gif                        BindData(); 

InBlock.gif                } 

InBlock.gif 

InBlock.gif                
void BindData() 

InBlock.gif                { 

InBlock.gif                        var source = 
new Data.SourceData(); 

InBlock.gif 

InBlock.gif                        
// 设置 ComboBox 的数据源 

InBlock.gif                        cbo2.ItemsSource = source.GetData().Take(10); 

InBlock.gif                } 

InBlock.gif        } 

InBlock.gif}
 
 
OK
 
     本文转自webabcd 51CTO博客,原文链接:http://blog.51cto.com/webabcd/342801
,如需转载请自行联系原作者
你可能感兴趣的文章
mac java环境
查看>>
SQL Server 2008 收缩日志(log)文件
查看>>
UICollectionView基础
查看>>
BZOJ2794 : [Poi2012]Cloakroom
查看>>
正确计算linux系统内存使用率
查看>>
[转载]SpringMVC的Model参数绑定方式
查看>>
Linux socket多进程服务器框架三
查看>>
Debug.print的用法
查看>>
常用名词
查看>>
第一百三十四节,JavaScript,封装库--遮罩锁屏
查看>>
RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-新增锁定用户与解除锁定用户的功能...
查看>>
vue1.0 的过滤器
查看>>
EventCache表太大, 怎么办?
查看>>
Top 10 mistakes in Eclipse Plug-in Development
查看>>
Directx教程(23) 简单的光照模型(2)
查看>>
Java 并发性和多线程
查看>>
IE6下frameset横向滚动条BUG
查看>>
Python线程专题9:线程终止与挂起、实用工具函数
查看>>
Unity中关于作用力方式ForceMode的功能注解
查看>>
view生命周期的一个找父类的控件的方法
查看>>