• 稳扎稳打Silverlight(8) 2.0图形之基类System.Windows.Shapes.Shape


    [索引页]
    [源码下载]


    稳扎稳打Silverlight(8) - 2.0图形之基类System.Windows.Shapes.Shape


    作者:webabcd


    介绍
    Silverlight 2.0 图形:基类System.Windows.Shapes.Shape(Ellipse, Line, Path, Polygon, Polyline, Rectangle都继承自抽象类System.Windows.Shapes.Shape)。
        Fill - 填充(System.Windows.Media.Brush类型)
        Stroke - 笔触(System.Windows.Media.Brush类型)
        StrokeThickness - 笔触尺寸
        Stretch - 拉伸值 [System.Windows.Media.Stretch 枚举]
        StrokeDashArray - 虚线和间隙的值的集合 [System.Windows.Media.Stretch 枚举]
        StrokeDashCap - 虚线两端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
        StrokeStartLineCap - 虚线起始端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
        StrokeEndLineCap - 虚线终结端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
        StrokeDashOffset - 虚线的起始位置。从虚线的起始端的 StrokeDashOffset 距离处开始描绘虚线
        StrokeLineJoin - 图形连接点处的连接类型 [System.Windows.Media.PenLineJoin 枚举]
        StrokeMiterLimit - 斜接长度 与 StrokeThickness/2 的比值。默认值 10,最小值 1


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


    示例
    Shape.xaml
    <UserControl x:Class="Silverlight20.Shape.Shape"
        xmlns
    ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x
    ="http://schemas.microsoft.com/winfx/2006/xaml">
        
    <StackPanel HorizontalAlignment="Left">

            
    <Grid Margin="10" HorizontalAlignment="Left">
                
                
    <!--
                Fill - 填充(System.Windows.Media.Brush类型)
                Stroke - 笔划(边框)(System.Windows.Media.Brush类型)
                StrokeThickness - 笔划(边框)尺寸
                
    -->
                
    <Rectangle Width="200" Height="50" Fill="Red" Stroke="Yellow" StrokeThickness="3" />
                
            
    </Grid>
            
            
    <Grid Width="200" Height="200" Margin="10" HorizontalAlignment="Left" ShowGridLines="True">
                
    <Grid.RowDefinitions>
                    
    <RowDefinition Height="100" />
                    
    <RowDefinition Height="100" />
                
    </Grid.RowDefinitions>
                
    <Grid.ColumnDefinitions>
                    
    <ColumnDefinition Width="100" />
                    
    <ColumnDefinition Width="100" />
                
    </Grid.ColumnDefinitions>

                
    <!--Stretch属性 - 拉伸值 [System.Windows.Media.Stretch 枚举]-->
                
                
    <!--
                Stretch.None - 不做处理
                    不做任何拉伸处理,填充内容保持原始大小
                
    -->
                
    <Rectangle Grid.Row="0" Grid.Column="0" 
                         Width
    ="80" Height="40" Fill="Red" Stroke="Yellow" StrokeThickness="6"
                         Stretch
    ="None" />
                
                
    <!--
                Stretch.Fill - 充满
                    调整填充内容,以充满整个容器,填充内容比例变为容器比例。默认值            
                
    -->
                
    <Rectangle Grid.Row="0" Grid.Column="1" 
                         Width
    ="180" Height="40" Fill="Red" Stroke="Yellow" StrokeThickness="6" 
                         Stretch
    ="Fill" />
                
                
    <!--
                Stretch.Uniform - 等比适应
                    调整填充内容,以适合容器尺寸,填充内容会做等比例调整
                    如果填充内容与容器比例不一样,那么填充内容调整的结果为:
                    使得填充内容的宽与容器的宽相等,或者 填充内容的高与容器的高相等。填充内容会被完整显示
                
    -->
                
    <Rectangle Grid.Row="1" Grid.Column="0" 
                         Width
    ="80" Height="40" Fill="Red" Stroke="Yellow" StrokeThickness="6" 
                         Stretch
    ="Uniform" />
                
                
    <!--
                Stretch.UniformToFill - 等比充满
                    调整填充内容,以适合容器尺寸,填充内容会做等比例调整
                    如果填充内容与容器比例不一样,那么填充内容调整的结果为:
                    使得填充内容的宽与容器的宽相等,并且 填充内容的高与容器的高相等。填充内容会被做相应的剪裁
                
    -->
                
    <Rectangle Grid.Row="1" Grid.Column="1" 
                         Width
    ="80" Height="40" Fill="Red" Stroke="Yellow" StrokeThickness="6" 
                         Stretch
    ="UniformToFill" />
                
            
    </Grid>

            
    <Grid Margin="10" HorizontalAlignment="Left">
                
    <Grid.RowDefinitions>
                    
    <RowDefinition Height="20" />
                    
    <RowDefinition Height="20" />
                    
    <RowDefinition Height="20" />
                    
    <RowDefinition Height="20" />
                    
    <RowDefinition Height="20" />
                    
    <RowDefinition Height="20" />
                    
    <RowDefinition Height="20" />
                
    </Grid.RowDefinitions>

                
    <!--
                StrokeDashArray - 虚线和间隙的值的集合 [System.Windows.Media.Stretch 枚举]
                    奇数项为虚线长度;偶数项为间隙长度;如果只有一个值,则虚线长度和间隙长度都为该值
                
    -->
                
    <Line Grid.Row="0" X1="0" Y1="0" X2="400" Y2="0" Stroke="Red" StrokeThickness="10" 
                      StrokeDashArray
    ="2" />
                         
                
    <!--
                StrokeDashCap - 虚线两端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
                    PenLineCap.Flat - 无。默认值
                    PenLineCap.Round - 直径等于 StrokeThickness
                    PenLineCap.Square - 高度等于 StrokeThickness 并且 宽度等于 StrokeThickness/2
                    PenLineCap.Triangle - 底边长等于 StrokeThickness 的等腰直角三角形
                
    -->
                
    <Line Grid.Row="1" X1="0" Y1="0" X2="400" Y2="0" Stroke="Red" StrokeThickness="10" 
                      StrokeDashArray
    ="2,4,6" StrokeDashCap="Flat" />
            
                
    <Line Grid.Row="2" X1="0" Y1="0" X2="400" Y2="0" Stroke="Red" StrokeThickness="10" 
                      StrokeDashArray
    ="2,4,6" StrokeDashCap="Round" />
                
    <Line Grid.Row="2" X1="0" Y1="0" X2="400" Y2="0" Stroke="Black" StrokeThickness="10" 
                      StrokeDashArray
    ="2,4,6" StrokeDashCap="Flat" />

                
    <Line Grid.Row="3" X1="0" Y1="0" X2="400" Y2="0" Stroke="Red" StrokeThickness="10" 
                      StrokeDashArray
    ="2,4,6" StrokeDashCap="Square" />
                
    <Line Grid.Row="3" X1="0" Y1="0" X2="400" Y2="0" Stroke="Black" StrokeThickness="10" 
                      StrokeDashArray
    ="2,4,6" StrokeDashCap="Flat" />

                
    <Line Grid.Row="4" X1="0" Y1="0" X2="400" Y2="0" Stroke="Red" StrokeThickness="10" 
                      StrokeDashArray
    ="2,4,6" StrokeDashCap="Triangle" />
                
    <Line Grid.Row="4" X1="0" Y1="0" X2="400" Y2="0" Stroke="Black" StrokeThickness="10" 
                      StrokeDashArray
    ="2,4,6" StrokeDashCap="Flat" />
                
                
    <!--
                StrokeStartLineCap - 虚线起始端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
                StrokeEndLineCap - 虚线终结端(线帽)的类型 [System.Windows.Media.PenLineCap 枚举]
                
    -->
                
    <Line Grid.Row="5" X1="0" Y1="0" X2="400" Y2="0" Stroke="Red" StrokeThickness="10" 
                      StrokeDashArray
    ="2,4,6" StrokeStartLineCap="Square" StrokeEndLineCap="Triangle" />
                
    <Line Grid.Row="5" X1="0" Y1="0" X2="400" Y2="0" Stroke="Black" StrokeThickness="10" 
                      StrokeDashArray
    ="2,4,6" StrokeDashCap="Flat" />
                
                
    <!--
                StrokeDashOffset - 虚线的起始位置。从虚线的起始端的 StrokeDashOffset 距离处开始描绘虚线
                
    -->
                
    <Line Grid.Row="6" X1="0" Y1="0" X2="400" Y2="0" Stroke="Red" StrokeThickness="10" 
                      StrokeDashArray
    ="2,4,6" StrokeDashOffset="1" />

            
    </Grid>

            
    <Grid Margin="10" HorizontalAlignment="Left" ShowGridLines="True">
                
    <Grid.ColumnDefinitions>
                    
    <ColumnDefinition Width="120" />
                    
    <ColumnDefinition Width="120" />
                    
    <ColumnDefinition Width="120" />
                
    </Grid.ColumnDefinitions>

                
    <!--StrokeLineJoin属性 - 图形连接点处的连接类型 [System.Windows.Media.PenLineJoin 枚举]-->

                
    <!--
                StrokeLineJoin.Bevel - 线形连接
                
    -->
                
    <Polyline Grid.Column="0" 
                          Points
    ="10,100 50,10 100,100" Stroke="Red" StrokeThickness="20" HorizontalAlignment="Center"
                          StrokeLineJoin
    ="Bevel" />

                
    <!--
                StrokeLineJoin.Miter - 角形连接。默认值
                
    -->
                
    <Polyline Grid.Column="1" 
                          Points
    ="10,100 50,10 100,100" Stroke="Red" StrokeThickness="20" HorizontalAlignment="Center" 
                          StrokeLineJoin
    ="Miter" />

                
    <!--
                StrokeLineJoin.Round - 弧形连接
                
    -->
                
    <Polyline Grid.Column="2" 
                          Points
    ="10,100 50,10 100,100" Stroke="Red" StrokeThickness="20"  HorizontalAlignment="Center"
                          StrokeLineJoin
    ="Round" />
                
            
    </Grid>

            
    <Grid Margin="10" HorizontalAlignment="Left"  ShowGridLines="True">
                
    <Grid.ColumnDefinitions>
                    
    <ColumnDefinition Width="120" />
                    
    <ColumnDefinition Width="120" />
                    
    <ColumnDefinition Width="120" />
                
    </Grid.ColumnDefinitions>
                
                
    <!--StrokeMiterLimit属性 - 斜接长度(蓝色线部分)与 StrokeThickness/2 的比值。默认值 10,最小值 1-->

                
    <Polyline Grid.Column="0" 
                          Points
    ="0,100 50,10 100,100" Stroke="Red" StrokeThickness="20"
                          StrokeMiterLimit
    ="1" />
                
    <Line Grid.Column="0" X1="0" Y1="100" X2="50" Y2="10" Stroke="Yellow" />
                
    <Line Grid.Column="0" X1="50" Y1="10" X2="100" Y2="100" Stroke="Yellow" />
                
    <Line Grid.Column="0" X1="50" Y1="10" X2="50" Y2="0" Stroke="Blue" />

                
    <Polyline Grid.Column="1" 
                          Points
    ="0,100 50,10 100,100" Stroke="Red" StrokeThickness="20"
                          StrokeMiterLimit
    ="2.0" />
                
    <Line Grid.Column="1" X1="0" Y1="100" X2="50" Y2="10" Stroke="Yellow" />
                
    <Line Grid.Column="1" X1="50" Y1="10" X2="100" Y2="100" Stroke="Yellow" />
                
    <Line Grid.Column="1" X1="50" Y1="10" X2="50" Y2="-10" Stroke="Blue" />

                
    <Polyline Grid.Column="2" 
                          Points
    ="0,100 50,10 100,100" Stroke="Red" StrokeThickness="20" 
                          
    />
                
    <Line Grid.Column="2" X1="0" Y1="100" X2="50" Y2="10" Stroke="Yellow" />
                
    <Line Grid.Column="2" X1="50" Y1="10" X2="100" Y2="100" Stroke="Yellow" />
                
    <Line Grid.Column="2" X1="50" Y1="10" X2="50" Y2="-10" Stroke="Blue" />
                
            
    </Grid>

        
    </StackPanel>
    </UserControl>


    OK
    [源码下载]
  • 相关阅读:
    poj2229 Sumsets (递推)
    hihocoder1148 February 29(区间闰年计数)
    sort函数比较cmp写法
    字符串忽略大小写
    地形
    启用和禁用warning
    AppStore SDK
    NGUI List优化
    ETC1
    加载
  • 原文地址:https://www.cnblogs.com/webabcd/p/1320098.html
Copyright © 2020-2023  润新知