• 稳扎稳打Silverlight(6) 2.0控件之ScrollViewer, Slider, StackPanel, TabControl, TextBlock, TextBox, ToggleButton


    [索引页]
    [源码下载]


    稳扎稳打Silverlight(6) - 2.0控件之ScrollViewer, Slider, StackPanel, TabControl, TextBlock, TextBox, ToggleButton


    作者:webabcd


    介绍
    Silverlight 2.0 控件一览:ScrollViewer, Slider, StackPanel, TabControl, TextBlock, TextBox, ToggleButton


    在线DEMO
    http://www.cnblogs.com/webabcd/archive/2008/10/09/1307486.html


    示例
    1、ScrollViewer.xaml
    <UserControl x:Class="Silverlight20.Control.ScrollViewer"
        xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml">
        
    <StackPanel>

            
    <!--
            ScrollViewer.Content - ScrollViewer控件中的内容
            HorizontalScrollBarVisibility - 水平滚动条的显示状态
            VerticalScrollBarVisibility - 垂直滚动条的显示状态
                Auto - 自动根据ScrollViewer的宽和高,以及内容的宽和高,来决定是否显示滚动条
                Disabled - 不显示,但是可以通过键盘或鼠标在显示内容中的移动或拖动操作,来看到被遮挡的内容
                Hidden - 不显示,而且无法看到被遮挡的内容
                Visible - 显示滚动条
            
    -->
            
    <ScrollViewer Margin="5" Width="200" Height="200" HorizontalAlignment="Left" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
                
    <ScrollViewer.Content>
                    
    <Image Source="/Silverlight20;component/Images/Logo.jpg" Width="300" />
                
    </ScrollViewer.Content>
            
    </ScrollViewer>

            
    <ScrollViewer Margin="5" Width="100" Height="100" HorizontalAlignment="Left" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
                
    <TextBox>
                    
    <TextBox.Text>
                        aaa
    bbb
    ccc
    ddd
    eee
    fff
    ggg
    hhh
    iii
    jjj
    kkk
    lll
    mmm
    nnn
                    
    </TextBox.Text>
                
    </TextBox>
            
    </ScrollViewer>

        
    </StackPanel>
    </UserControl>


    2、Slider.xaml
    <UserControl x:Class="Silverlight20.Control.Slider"
        xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml">
        
    <StackPanel>
                    
            
    <!--
            Minimum - Slider控件的最小值。参见基类System.Windows.Controls.Primitives.RangeBase
            Maximum - Slider控件的最大值。参见基类System.Windows.Controls.Primitives.RangeBase
            Value - Slider控件的值。参见基类System.Windows.Controls.Primitives.RangeBase
            SmallChange - 按上/下/左/右键的时候,Slider 控件的 Value 值的变化跨度。参见 Slider 的基类 System.Windows.Controls.Primitives.RangeBase
            LargeChange - 鼠标在 Slider 上单击的时候,Slider 控件的 Value 值的变化跨度。参见 Slider 的基类 System.Windows.Controls.Primitives.RangeBase
            ValueChanged - Slider控件的值发生变化时所触发的事件
            Orientation - 控件的放置方向
                Horizontal - 水平放置
                Vertical - 垂直放置
            IsDirectionReversed - 滑块的初始位置
                True - 上到下 或者 右到左
                False - 下到上 或者 左到右
            
    -->
            
    <Slider Height="400" HorizontalAlignment="Left" Orientation="Vertical" IsDirectionReversed="True" Minimum="0" Maximum="50" SmallChange="5" ValueChanged="Slider_ValueChanged"  />

            
    <TextBlock x:Name="lblMsg" HorizontalAlignment="Left" />

        
    </StackPanel>
    </UserControl>


    Slider.xaml.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;

    namespace Silverlight20.Control
    {
        
    public partial class Slider : UserControl
        
    {
            
    public Slider()
            
    {
                InitializeComponent();
            }


            
    private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
            
    {
                
    // RoutedPropertyChangedEventArgs<double>.OldValue - Slider控件的原值
                
    // RoutedPropertyChangedEventArgs<double>.NewValue - Slider控件的新值

                lblMsg.Text 
    = string.Format("原值:{0}\r\n新值:{1}", e.OldValue.ToString(), e.NewValue.ToString());
            }

        }

    }



    3、StackPanel.xaml
    <UserControl x:Class="Silverlight20.Control.StackPanel"
        xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml">
        
    <StackPanel HorizontalAlignment="Left">

            
    <!--
            Orientation - StackPanel控件内对象的排列方向
                Horizontal - 水平排列
                Vertical - 垂直排列
            
    -->
            
    <StackPanel Orientation="Horizontal">
                
    <TextBlock Text="a" Margin="5" />
                
    <TextBlock Text="b" Margin="5" />
                
    <TextBlock Text="c" Margin="5" />
            
    </StackPanel>
            
            
    <StackPanel Orientation="Vertical">
                
    <TextBlock Text="a" Margin="5" />
                
    <TextBlock Text="b" Margin="5" />
                
    <TextBlock Text="c" Margin="5" />
            
    </StackPanel>
            
        
    </StackPanel>
    </UserControl>


    4、TabControl.xaml
    <UserControl x:Class="Silverlight20.Control.TabControl"
        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">
            
            
    <!--
            SelectedIndex - 被选中的 TabItem 索引
            SelectedItem - 被选中的 TabItem 对象
            
    -->
            
    <basics:TabControl Width="400" Height="400" SelectedIndex="1">
                
                
    <basics:TabItem Header="Tab1">
                    
    <TextBlock Text="Tab1 Content" />
                
    </basics:TabItem>

                
    <!--
                TabItem.Header - TabItem 的标题
                TabItem.Content - TabItem 的内容
                
    -->
                
    <basics:TabItem>
                    
    <basics:TabItem.Header>
                        
    <TextBlock Text="Tab2"/>
                    
    </basics:TabItem.Header>
                    
    <basics:TabItem.Content>
                        
    <TextBlock Text="Tab2 Content" />
                    
    </basics:TabItem.Content>
                
    </basics:TabItem>

                
    <basics:TabItem>
                    
    <basics:TabItem.Header>
                        
    <Image Source="/Silverlight20;component/Images/Logo.jpg" Height="20" />
                    
    </basics:TabItem.Header>
                    
    <TextBlock Text="Tab3 Content"></TextBlock>
                
    </basics:TabItem>

                
    <basics:TabItem>
                    
    <basics:TabItem.Header>
                        
    <Grid Width="100">
                            
    <Image Source="/Silverlight20;component/Images/Logo.jpg" Height="20" HorizontalAlignment="Center" />
                            
    <TextBlock Text="Tab4" HorizontalAlignment="Center" />
                        
    </Grid>
                    
    </basics:TabItem.Header>
                    
    <TextBlock Text="Tab4 Content"></TextBlock>
                
    </basics:TabItem>
                
            
    </basics:TabControl>
            
        
    </StackPanel>
    </UserControl>


    5、TextBlock.xaml
    <UserControl x:Class="Silverlight20.Control.TextBlock"
        xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml">
        
    <StackPanel HorizontalAlignment="Left">

            
    <!--
            Text - TextBlock上显示的值
            
    -->
            
    <TextBlock Text="TextBlock" />

            
    <!--
            Foreground - 字体颜色
            
    -->
            
    <TextBlock Text="红色的TextBlock" Foreground="Red" />

            
    <!--
            要以XAML的方式直接显示引号等特殊字请使用相应的HTML编码
            
    -->
            
    <TextBlock Text="带引号的&quot;TextBlock&quot;" />

            
    <!--
            FontFamily - 字体
            FontSize - 字体大小
            FontWeight - 字形粗细度 [System.Windows.FontWeights枚举]
            FontStyle - 字形斜体否 [System.Windows.FontStyles枚举]
            TextDecorations - 字体下划线 [System.Windows.TextDecorations枚举]
            FontStretch - 字体间距 [System.Windows.FontStretches枚举]
            
    -->
            
    <TextBlock Text="常用属性TextBlock" FontFamily="宋体" FontSize="36" FontWeight="Bold" FontStyle="Italic" TextDecorations="Underline" FontStretch="Normal" />

            
    <!--
            TextAlignment - 文字排列 [System.Windows.TextAlignment枚举]
            Run - 文本内容
            LineBreak - 换行符
            LineHeight - 每行行高
            TextWrapping - 文本限制(超过限制是否换行)
                NoWrap - 永不换行
                Wrap - 超过限制则换行
            LineStackingStrategy - 控制行高的策略
                MaxHeight - TextBlock内每行的行高 以LineHeight值 和 每行自身所设置的行高值 间的最大值为准
                BlockLineHeight - TextBlock内每行的行高 以LineHeight值为准
            
    -->
            
    <TextBlock VerticalAlignment="Center" TextAlignment="Center" LineHeight="10" LineStackingStrategy="MaxHeight" Width="200" TextWrapping="NoWrap">
                
    <Run FontSize="20" Foreground="Maroon" Text="MaroonMaroonMaroonMaroon" />
                
    <LineBreak/>
                
    <Run Foreground="Teal" Text="Teal" />
                
    <LineBreak/>
                
    <Run FontSize="30" Foreground="SteelBlue" Text="SteelBlue" />
            
    </TextBlock>

            
            
    <TextBlock VerticalAlignment="Center" TextAlignment="Center" LineHeight="10" LineStackingStrategy="BlockLineHeight" Width="200" TextWrapping="Wrap">
                
    <Run FontSize="20" Foreground="Red" Text="RedRedRedRedRedRedRedRedRed" />
                
    <LineBreak/>
                
    <Run Foreground="Green" Text="Green" />
                
    <LineBreak/>
                
    <Run FontSize="30" Foreground="Blue" Text="Blue" />
            
    </TextBlock>
           
        
    </StackPanel>
    </UserControl>


    6、TextBox.xaml
    <UserControl x:Class="Silverlight20.Control.TextBox"
        xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml">
        
    <StackPanel HorizontalAlignment="Left" Width="200">

            
    <!--
            Text - TextBox内显示的值
            BorderThickness - 边框的宽度(像素值:上下左右;左右,上下;左,上,右,下)
            BorderBrush - 边框的颜色
            
    -->
            
    <TextBox Text="红色框绿色底蓝色字(真难看)" BorderBrush="Red" BorderThickness="1,5" Background="Green" Foreground="Blue" Margin="6" />
                    
            
    <!--
            IsReadOnly - 是否只读
            
    -->
            
    <TextBox Text="只读TextBox" IsReadOnly="True" Margin="6" />
            
            
    <!--
            AcceptsReturn - 是否允许输入回车
            HorizontalScrollBarVisibility - 水平滚动条的显示状态
            VerticalScrollBarVisibility - 垂直滚动条的显示状态
                Auto - 自动根据TextBox控件的宽和高,以及其内容的宽和高,来决定是否显示滚动条
                Disabled - 不显示,但是可以通过键盘或鼠标在显示内容中的移动或拖动操作,来看到被遮挡的内容
                Hidden - 不显示,而且无法看到被遮挡的内容
                Visible - 显示滚动条
            
    -->
            
    <TextBox Height="50" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" Margin="6"
                    Text
    ="多行文本框1 多行文本框2 多行文本框3 多行文本框4 多行文本框5 多行文本框6" />
            
            
    <!--
            SelectionChanged - 选中的文本内容发生变化时所触发的事件
            
    -->
            
    <TextBox Height="50" AcceptsReturn="False" Margin="5" SelectionChanged="TextBox_SelectionChanged"
                    Text
    ="相应选中事件多行文本框1 多行文本框2 多行文本框3" />
            
            
    <TextBlock Margin="5">
                
    <Run>选中的文本为:</Run>
                
    <LineBreak />
                
    <Run x:Name="lblMsg"></Run>
            
    </TextBlock>
            
        
    </StackPanel>
    </UserControl>

    TextBox.xaml.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;

    namespace Silverlight20.Control
    {
        
    public partial class TextBox : UserControl
        
    {
            
    public TextBox()
            
    {
                InitializeComponent();
            }


            
    private void TextBox_SelectionChanged(object sender, RoutedEventArgs e)
            
    {
                lblMsg.Text 
    = ((System.Windows.Controls.TextBox)sender).SelectedText;
            }

        }

    }



    7、ToggleButton.xaml
    <UserControl x:Class="Silverlight20.Control.ToggleButton"
        xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml">
        
    <StackPanel HorizontalAlignment="Left" Width="300">

            
    <!--
            Content - ToggleButton上显示的内容
            Click - ToggleButton的单击事件
            Cursor - 鼠标移动到ToggleButton上面时,鼠标指针的样式
                Arrow - 箭头
                Hand - 手形 
                Wait - 沙漏
                IBeam - “I”字形 
                Stylus - 点
                Eraser - 橡皮
                None - 无
            
    -->
            
    <ToggleButton x:Name="tbtn1" Content="红色的两状态的ToggleButton" Cursor="IBeam" Background="Red" Margin="5" />

            
    <!--
            IsThreeState - 是否是 有3个状态 的ToggleButton
                false - 通常的两状态。默认值
                true - 有3个状态,分别为:true, false, null。也就是说 ToggleButton.IsChecked 是 bool? 类型
            Checked - ToggleButton的IsChecked变为true时所触发的事件
            Unchecked - ToggleButton的IsChecked变为false时所触发的事件
            Indeterminate - ToggleButton的IsChecked变为null时所触发的事件
            
    -->
            
    <ToggleButton x:Name="tbtn2" Content="红色的三状态的ToggleButton" Background="Red" IsThreeState="True" Margin="5" />

            
    <!--
            IsEnabled - ToggleButton是否有效
            
    -->
            
    <ToggleButton x:Name="tbtn3" Content="无效的ToggleButton" IsEnabled="False" Margin="5"/>

            
    <!--
            ToggleButton.Content - ToggleButton上显示的内容
            ClickMode - 触发单击事件的类型 [System.Windows.Controls.ClickMode枚举]
                ClickMode.Press - 鼠标左键单击
                ClickMode.Release - 鼠标左键单击并放开
                ClickMode.Hover - 鼠标经过
            
    -->
            
    <ToggleButton x:Name="tbtn4" ClickMode="Release" Margin="5">
                
    <ToggleButton.Content>
                    
    <Image Source="/Silverlight20;component/Images/Logo.jpg" />
                
    </ToggleButton.Content>
            
    </ToggleButton>

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

        
    </StackPanel>
    </UserControl>

    ToggleButton.xaml.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;

    using System.Windows.Browser;

    namespace Silverlight20.Control
    {
        
    public partial class ToggleButton : UserControl
        
    {
            
    public ToggleButton()
            
    {
                InitializeComponent();
            }


            
    private void Button_Click(object sender, RoutedEventArgs e)
            
    {
                HtmlWindow html 
    = HtmlPage.Window;
                html.Alert(
    string.Format("tbtn1: {0}\r\ntbtn2: {1}\r\ntbtn3: {2}\r\ntbtn4: {3}",
                    tbtn1.IsChecked, tbtn2.IsChecked, tbtn3.IsChecked, tbtn4.IsChecked));
            }

        }

    }



    OK
    [源码下载]
  • 相关阅读:
    base64解码
    字典排序之后md5
    python 如何将列表多个字符串拼接成一个字符串
    Mongodb $setOnInsert操作符 和upsert:true
    为了不复制粘贴,我被逼着学会了JAVA爬虫
    10-序列化
    【开发笔记】- 停止MySQL正在执行的SQL语句
    【算法练习】- 百钱百鸡
    volatile与synchronized的区别与作用
    记录一次使用OSS而引发的关于maven的问题
  • 原文地址:https://www.cnblogs.com/webabcd/p/1314770.html
Copyright © 2020-2023  润新知