精华内容
下载资源
问答
  • WPF Canvas

    2019-07-17 19:54:42
    Canvas是最基本的面板,只是一个存储控件的容器,它不会自动调整内部元素的排列及大小,它仅支持用显式坐标定位控件,它也允许指定相对任何角的坐标,而不仅仅是左上角。可以使用Left、Top、Right、Bottom附加属性在...

    Canvas是最基本的面板,只是一个存储控件的容器,它不会自动调整内部元素的排列及大小,它仅支持用显式坐标定位控件,它也允许指定相对任何角的坐标,而不仅仅是左上角。可以使用LeftTopRight Bottom附加属性在Canvas中定位控件。通过设置LeftRight属性的值表示元素最靠近的那条边,应该与Canvas左边缘或右边缘保持一个固定的距离,设置TopBottom的值也是类似的意思。实质上,你在选择每个控件停靠的角时,附加属性的值是作为外边距使用的。如果一个控件没有使 用任何附加属性,它会被放在Canvas的左上方(等同于设置LeftTop0)。

     

    Canvas的主要用途是用来画图。Canvas默认不会自动裁减超过自身范围的内容,即溢出的内容会显示在Canvas外面,这是因为默认 ClipToBounds=”False”;我们可以通过设置ClipToBounds=”True”来裁剪多出的内容。

    <Window x:Class="WpfCS.MainWindow"

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

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

            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

            xmlns:local="clr-namespace:WpfCS"

            mc:Ignorable="d"

            Title="MainWindow" Height="350" Width="525">

        <Grid>

            <Canvas Margin="0,0,0,0" Background="White">

                <Rectangle Fill="Blue"

                    Stroke="Azure"

                    Width="250"

                    Height="2000"

                    Canvas.Left="210" Canvas.Top="101" ClipToBounds="True">

                  

                </Rectangle>

                <Ellipse Fill="Red"

                    Stroke="Green"

                    Width="250" Height="100"

                    Panel.ZIndex="1"

                    Canvas.Left="65" Canvas.Top="45"/>

                <Button Width="100" Canvas.Left="50">后台代码实现</Button>

            </Canvas>

            <Canvas>

                <Button Name="btnByCode" Click="btnByCode_Click">后台代码实现</Button>

            </Canvas>

        </Grid>

    </Window>

     

     

    后台代码,点击实现Canvas画布

    <Window x:Class="WpfCS.MainWindow"

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

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

            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

            xmlns:local="clr-namespace:WpfCS"

            mc:Ignorable="d"

            Title="MainWindow" Height="350" Width="525">

        <Grid>

            <Canvas >

                <Button Name="btnByCode" Click="btnByCode_Click">点击按钮</Button>

            </Canvas>

        </Grid>

     

     

     

     

    private void btnByCode_Click(object sender, RoutedEventArgs e)

            {

                Canvas canv = new Canvas();

                //把canv添加为窗体的子控件

                this.Content = canv;

                canv.Margin = new Thickness(0, 0, 0, 0);

                canv.Background = new SolidColorBrush(Colors.White);

                //Rectangle

                Rectangle r = new Rectangle();

                r.Fill = new SolidColorBrush(Colors.Yellow);

                r.Stroke = new SolidColorBrush(Colors.Red);

                r.Width = 250;

                r.Height = 200;

                r.SetValue(Canvas.LeftProperty, (double)140);

                r.SetValue(Canvas.TopProperty, (double)50);

                canv.Children.Add(r);

                //Ellipse

                Ellipse el = new Ellipse();

                el.Fill = new SolidColorBrush(Colors.Green);

                el.Stroke = new SolidColorBrush(Colors.Blue);

                el.Width = 250;

                el.Height = 100;

                el.SetValue(Panel.ZIndexProperty, 1);

                el.SetValue(Canvas.LeftProperty, (double)10);

                el.SetValue(Canvas.TopProperty, (double)20);

                canv.Children.Add(el);

            }

     

     

     

    展开全文
  • WPF Canvas实现进度条

    2019-05-01 09:31:00
    WPF Canvas实现进度条 原文:WPF Canvas实现进度条先看效果图: 思路: 一个Canvas做背景,一个Canvas用来显示进度,图片放在显示进度的Canvas中,靠右设置为图片本身宽度一半的距离,视觉上实现以...
    原文:WPF Canvas实现进度条

    先看效果图:

    思路:

    一个Canvas做背景,一个Canvas用来显示进度,图片放在显示进度的Canvas中,靠右设置为图片本身宽度一半的距离,视觉上实现以图片中轴线为原点

    前台代码:

    <Window x:Class="ProgressMask.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow">
        <Grid>
            <Canvas Name="myProgressCanvas" Background="LightGray" Height="50" Width="300">
                <Canvas Name="myProgressValue" Canvas.Left="0" Width="10" Background="Red" Height="{Binding ElementName=myProgressCanvas,Path=Height}">
                    <Image Name="myProgressImg" Width="10" Canvas.Right="-5" Source=".\倒三角.png" Height="{Binding ElementName=myProgressCanvas,Path=Height,Mode=OneWay}"></Image>
                </Canvas>
            </Canvas>
        </Grid>
    </Window>

    后台关键代码:

            public Double ProgressImgWidth
            {
                get { return myProgressImg.Width; }
                set
                {
                    myProgressImg.Width = value;
                    Canvas.SetRight(myProgressImg, -(myProgressImg.Width / 2));
                }
            }

    目前没有想到如何在不手动设置图片宽度的情况下设置图片的位置,暂时在前台页面中设置图片宽度和位置

    posted on 2019-05-01 09:31 NET未来之路 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lonelyxmas/p/10799167.html

    展开全文
  • WPF Canvas绘图

    2016-07-27 22:29:00
    Canvas节点下直接添加对应的节点即可,如直线节点Line,矩形节点Rectangle 2. 设置Canvas.Top等属性 Canvas.SetTop(Sharp,top) Rectangle rct = new Rectangle(); Canvas.SetLeft(rct, left); Canvas....

    1. 绘制图像

    在Canvas节点下直接添加对应的节点即可,如直线节点Line,矩形节点Rectangle

    2. 设置Canvas.Top等属性

    Canvas.SetTop(Sharp,top)

    Rectangle rct = new Rectangle();
    Canvas.SetLeft(rct, left);
    Canvas.SetTop(rct, top);
    rct.Stroke = brush;
    rct.StrokeThickness = thick;
    rct.Width = width;
    rct.Height = height;
    mCanvas.Children.Add(rct);

    3. 绘制虚线

    Line l = new Line();
    l.X1 = x1;
    l.X2 = x2;
    l.Y1 = y1;
    l.Y2 = y2;
    l.Stroke = brush;
    if (0 != dash)
    {
        l.StrokeDashArray = new DoubleCollection { dash ,dash2};
    }
    mCanvas.Children.Add(l);

    其中StrokeDashArray表示虚线1、虚线1间隙、虚线2、虚线2间隙的长度……,循环使用,如上例(2个元素)的话,则dash表示所有虚线粗,dash2表示所有虚线间隙

    转载于:https://my.oschina.net/shanlilaideyu/blog/719285

    展开全文
  • WPFCanvas使用

    2019-10-08 13:26:07
    首先知道Canvas有Left、Right、Top和Bottom这四个属性,放入Canvas的元素通过这四个属性来决定它们在Canvas里面的位置。 比如: Xaml: <Canvas HorizontalAlignment="Left" Height="299" Margin="133,52,0,...

    首先知道Canvas有Left、Right、Top和Bottom这四个属性,放入Canvas的元素通过这四个属性来决定它们在Canvas里面的位置。

    比如:

    Xaml:

    <Canvas HorizontalAlignment="Left" Height="299" Margin="133,52,0,0" VerticalAlignment="Top" Width="526">
                <Button Content="Button" Canvas.Left="72" Canvas.Top="45" Width="75" Height="38"/>
                <Button Content="Button" Canvas.Left="124" Canvas.Top="173" Width="75" Height="42"/>
                <Button Content="Button" Canvas.Left="387" Canvas.Top="64" Width="75" Height="46"/>
                <Button Content="Button" Canvas.Left="336" Canvas.Top="196" Width="75" Height="42"/>
    </Canvas>

     如图:

     

    Canvas中Z-Index属性:

    不加Z-Index属性时,Canvas里面的元素会按照后定义的优先级更高,优先级高的可以覆盖优先级低的。

    例:Xaml:

    <Grid>
            <Canvas HorizontalAlignment="Left" Height="299" Margin="133,52,0,0" VerticalAlignment="Top" Width="526">
                <Rectangle Fill="#FF5D5DC8" Height="45" Canvas.Left="22" Stroke="Black" Canvas.Top="25" Width="100"/>
                <Rectangle Fill="#FFEAEAF6" Height="50" Canvas.Left="94" Stroke="Black" Canvas.Top="46" Width="100"/>
                <Rectangle Fill="#FFCD6650" Height="100" Canvas.Left="166" Stroke="Black" Canvas.Top="84" Width="59"/>
                <Ellipse Fill="#FFB1CD50" Height="100" Canvas.Left="195" Stroke="Black" Canvas.Top="143" Width="100"/>
            </Canvas>
    </Grid>

    这里后定义的会覆盖先定义的子元素:

    下面看看使用了Z-Index属性:

    Xaml:

    <Grid>
            <Canvas HorizontalAlignment="Left" Height="299" Margin="133,52,0,0" VerticalAlignment="Top" Width="526">
                <Rectangle Fill="#FF5D5DC8" Panel.ZIndex="3" Height="45" Canvas.Left="22" Stroke="Black" Canvas.Top="25" Width="100"/>
                <Rectangle Fill="#FFEAEAF6" Panel.ZIndex="2" Height="50" Canvas.Left="94" Stroke="Black" Canvas.Top="46" Width="100"/>
                <Rectangle Fill="#FFCD6650" Panel.ZIndex="1" Height="100" Canvas.Left="166" Stroke="Black" Canvas.Top="84" Width="59"/>
                <Ellipse Fill="#FFB1CD50" Panel.ZIndex="0" Height="100" Canvas.Left="195" Stroke="Black" Canvas.Top="143" Width="100"/>
            </Canvas>
    </Grid>

    如图:

    可以看出,Z-Index越小优先级越高,那么如果定义的Z-Index一样会是谁优先级更高呢?接着看。

     

    Xaml:

    <Grid>
            <Canvas HorizontalAlignment="Left" Height="299" Margin="133,52,0,0" VerticalAlignment="Top" Width="526">
                <Rectangle Fill="#FF5D5DC8" Panel.ZIndex="3" Height="45" Canvas.Left="22" Stroke="Black" Canvas.Top="25" Width="100"/>
                <Rectangle Fill="#FFEAEAF6" Panel.ZIndex="3" Height="50" Canvas.Left="94" Stroke="Black" Canvas.Top="46" Width="100"/>
                <Rectangle Fill="#FFCD6650" Panel.ZIndex="3" Height="100" Canvas.Left="166" Stroke="Black" Canvas.Top="84" Width="59"/>
                <Ellipse Fill="#FFB1CD50" Panel.ZIndex="3" Height="100" Canvas.Left="195" Stroke="Black" Canvas.Top="143" Width="100"/>
            </Canvas>
    </Grid>

    如图:

    可以看出,Z-Index一样的时候,谁后定义谁的优先级就高。

    转载于:https://www.cnblogs.com/Leozi/p/10779991.html

    展开全文
  • 大数据展示平台从上图可以看出,分为左中右三栏,左右主要是展示图标为主,中间部分展示地图,这种展示主要使用于物流行业,亮点是中间的地图,物流覆盖的地方和线路在地图中显示的淋漓尽致,效果非常炫,用WPF去...
  • WPF保存Canvas

    千次阅读 2013-03-16 09:29:03
    最近遇到怎样保存Canvas里面的内容,闲来无事,自己做个练习,来实践一下。下面贴出效果图和代码  下面为核心代码: //创建FileStream FileStream fs = new FileStream(path, FileMode.Create);  ...
  • WPF布局之Canvas

    2015-12-18 09:50:00
    1.CanvasWPF中子元素的绝对定位的布局控件 其子元素使用Width、Height定义元素的宽度和高度 使用Convas.Left(Convas.Right)、Convas.Top(Convas.Bottom)定义与Convas容器的相对位置 如果同时存在...
  • 将AutoCAD软件生成的DXF文件通过VS建立WPF工程,实现将AutoCAD软件中生成的工件图在WPFCanvas中画出来,并实现一定的功能。
  • WPF Canvas中元素的定位

    2019-09-29 07:21:27
    WPF Canvas中元素的定位 2009-10-21 21:273893人阅读评论(3)收藏举报 Canvas中元素的定位 Canvas,DockPanel,Grid,StackPanel,WrapPanel是WPF中的5个布局控件.每个布局控件都有不同的应用场景.如果您要对...
  • WPF Canvas 画区域

    2015-08-14 15:32:00
    实现原理就是一个Canvas做蒙板,然后canvas的三个事件,MouseLeftButtonDown,MouseMove,MouseLeftButtonUp。非常easy! 首先,你要有个canvas <Canvas Name="videocanvas" Height="288" Width="...
  • WpfCanvas介绍

    2017-10-12 13:40:00
    从这篇文章开始是对WPF中的界面如何布局做一个较简单的介绍,大家都知道:UI是做好一个软件很重要的因素,如果没有一个漂亮的UI,功能做的再好也无法吸引很多用户使用,而且没有漂亮的界面,那么普通用户会感觉这个...
  • C# WPF Canvas绘图

    万次阅读 2016-12-16 11:34:34
    //清除canvas画布 DrawCanvas.Children.Clear(); //直线对象 Line mydrawline = new Line(); mydrawline.Stroke= Brushes.Black;//外宽颜色,在直线里为线颜色 mydrawline.StrokeThickness = 3;//线宽度 mydrawline....
  • WPFCanvas另存为

    2019-10-07 22:30:25
    由于wpf的UI使用xaml来表达的,所以我们们可利用这个优点,把WPF中的xaml元素另存为各样的文件,在很多时候我们都不须要这样的操作。把xaml保存为图片、字符串、XPS等等。这里我写了一些方法,以供大家参考.。 注意...
  • wpf Canvas重写可视化流程图配置 类型VISIO功能 VS2013 可编译 有生成exe可参考
  • WPFCanvas另存

    千次阅读 2012-01-06 15:25:59
    由于wpf的UI使用xaml来表达的,所以我们们可利用这个优点,把WPF中的xaml元素另存为各样的文件,在很多时候我们都不须要这样的操作。把xaml保存为图片、字符串、XPS等等。这里我写了一些方法,以供大家参考.。 ...
  • wpf 可缩放的canvas

    2016-06-02 11:34:32
    这个是转的一个可缩放的canvas例子,可以直接用,很方便
  • WPF Canvas 异形件颜色填充

    千次阅读 2018-03-01 11:01:29
    通过直线段画异形件,然后填充颜色 &...Canvas&gt; &lt;Path Stroke="DarkCyan" StrokeThickness="3"&gt; &lt;Path.Fill&gt; &lt;LinearGradientBrush&gt; ...
  • WPF Canvas小例子

    2014-06-15 23:28:00
    源码下载:DraggingElementsInCanvas_demo.rar 转载于:https://www.cnblogs.com/jumahe/p/3790143.html
  • 我能想到这样做的最好的方式是通过使一个自定义的控件来封装像以下行为:public class RulerScrollViewer : ScrollViewer{static RulerScrollViewer(){DefaultStyleKeyProperty.OverrideMetadata(typeof...
  • WPF 使用Canvas做轮播图

    2020-09-07 15:01:01
    前端有的,WPF也要有! 先看效果: 方法:使用Canvas设计UserControl。 一、新建UserControl: <UserControl x:Class="WpfApp1.Slider" xmlns=...
  • WPF Canvas 局部放大

    2013-04-07 15:19:03
    有一个铺满整个屏幕的Canvas被划分为上下两个区域,上面是普通区域,下面是被放大的区域,要求都可以编辑,并且一个改变了另一个也跟着变,不知掉要怎么做,希望大家帮忙出出主意。另外Canvas里还有一些比如图片啊,...
  • WPF使用Canvas绘制可变矩形 原文:WPF使用Canvas绘制可变矩形 版权声明:本文为博主原创文章,未经博主允许不得转载。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,212
精华内容 484
关键字:

canvaswpf