wpf绘制圆环,实现图片镂空

一、使用Path构建复杂图形

Path所构建的图形由Data属性来定义,其属性的类型为Geometry(几何类),通过Path可以构建更加复杂的图形。想创建一个圆环,一种做法是使用两个圆形构建,另一种做法就是使用Path,可以直接绘制出圆环。

<Window x:Class="Creg.ShieldCutterSystem.Window1"
        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:Creg.ShieldCutterSystem"
        mc:Ignorable="d"
        Title="测试" Height="393.174" Width="614.334">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Canvas>
            <!--使用两个圆形叠加出圆环,但要受到其所有容器的限制-->
            <Ellipse Fill="Blue" Height="200" Canvas.Left="50" Canvas.Top="80" Width="200"/>
            <Ellipse Fill="#FFF9F9F9" Height="120" Canvas.Left="90" Canvas.Top="120" Width="120"/>
        </Canvas>
        <Canvas Grid.Column="1">
            <Path Fill="Blue">
                <Path.Data>
                    <GeometryGroup>
                        <!--Center为圆心的坐标,RadiusX、RadiusY分别为X、Y两轴的半径-->
                        <EllipseGeometry RadiusX="100" RadiusY="100" Center="150,180"/>
                        <EllipseGeometry RadiusX="60" RadiusY="60" Center="150,180"/>
                    </GeometryGroup>
                </Path.Data>
            </Path>
        </Canvas>
    </Grid>
</Window>

运行
这里写图片描述

由于第一种做法是一种“虚假”的圆环,所以,当给两个圆环所在的Canvas添加背景时,第一种做法的圆环不能出现“镂空”的效果,但第二种可以,为两个Canvas添加如下的背景图片:

 <Canvas.Background>
     <ImageBrush ImageSource="Images/test.jpg"/>
 </Canvas.Background>

运行
这里写图片描述

参考https://www.cnblogs.com/DragonInSea/archive/2009/06/16/1504417.html/

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF(Windows Presentation Foundation)是一种用于创建Windows应用程序的用户界面框架,它提供了丰富的图形、动画和多媒体功能,非常适合实现图片浏览器功能。 首先,我们可以使用WPF的布局控件,如Grid、StackPanel、WrapPanel等来创建图片浏览器的布局。可以将图片以网格状、列表状或者平铺方式显示出来,通过设置布局控件的属性来达到不同显示效果。 然后,我们可以使用WPF的Image控件来显示图片。通过绑定图片路径,将图片加载到Image控件上,并设置合适的布局和尺寸,使得图片在浏览器中呈现出较好的显示效果。同时可以利用WPF的特性,如绑定、命令等来实现图片的放大、缩小、旋转、拖拽等交互操作。 另外,为了实现图片浏览器的导航功能,我们可以使用WPF的按钮、菜单和导航控件,如ToolBar、Menu、TabControl等来增加上一页、下一页、首页、尾页、放大、缩小等功能按钮,并通过事件绑定和命令来实现相关操作。 此外,WPF还提供了强大的动画和过渡效果功能,我们可以利用这些功能,为图片浏览器增加一些华丽的过渡效果,如渐变、旋转、淡入淡出等,提升用户体验。 最后,在WPF中,我们可以采用MVVM(Model-View-ViewModel)架构来实现图片浏览器的功能。通过创建ViewModel类,将图片数据和操作逻辑与界面分离,实现数据绑定和命令绑定,提高代码的可维护性和重用性。 总的来说,WPF提供了许多强大的功能和灵活的设计模式来实现图片浏览器功能,开发者可以根据自己的需求和技术实力,选择最适合的方案来完成项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值