zoukankan      html  css  js  c++  java
  • 稳扎稳打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
    [源码下载]
  • 相关阅读:
    安装lnmp 时如何修改数据库数据存储地址及默认访问地址
    ubuntu 设置root用户密码并实现root用户登录
    解决ubuntu 远程连接问题
    linux 搭建FTP服务器
    PHP 根据ip获取对应的实际地址
    如何发布自己的composer包
    使用composer安装composer包报Your requirements could not be resolved to an installable set of packages
    laravel 框架配置404等异常页面
    使用Xshell登录linux服务器报WARNING! The remote SSH server rejected X11 forwarding request
    IoTSharp 已支持国产松果时序数据库PinusDB
  • 原文地址:https://www.cnblogs.com/webabcd/p/1320098.html
Copyright © 2011-2022 走看看