Windows Phone开发(33):路径之其它Geometry

简介: 原文: Windows Phone开发(33):路径之其它Geometry 上一节中,我们把最复杂的PathGeometry给干了,生剩下几个家伙就好办事了。
原文: Windows Phone开发(33):路径之其它Geometry

上一节中,我们把最复杂的PathGeometry给干了,生剩下几个家伙就好办事了。一起来见见他们的真面目吧。

 

一、LineGeometry

 

这个几何图形就很简单了,一条线段,两个点——StartPoint And EndPoint。

一起来看看下面的例子。

        <Path Grid.Column="0" Grid.Row="0">
            <Path.Data>
                <LineGeometry StartPoint="20,5" EndPoint="200,320"/>
            </Path.Data>
        </Path>


 

运行之后你会看到以下情景:

 

 

 

 

二、RectangleGeometry

它呈现一人矩形的几何图形,Rect指示其中矩形的位置大小,在XAML中可以用4个数值表示,即X、Y、Width、Height;别外,RadiusX和RadiusY表示圆角在X轴和Y轴上的半径。看下面的例子。

        <Path Grid.Column="1" Grid.Row="0">
            <Path.Data>
                <RectangleGeometry Rect="12,6,125,90" RadiusX="24" RadiusY="30"/>
            </Path.Data>
        </Path>


运行效果如下图所示。

 

 

 

 

三、EllipseGeometry

 

表示一个椭圆的几何图形,Center属性为椭圆的中心点的坐标,RadiusX和RadiusY分别为X轴方向上和Y轴方向上的半径长度。看例子。

        <Path Grid.Column="0" Grid.Row="1">
            <Path.Data>
                <EllipseGeometry Center="100,180" RadiusX="55" RadiusY="120"/>
            </Path.Data>
        </Path>


 

运行效果如下:

 

 

 

四、GeometryGroup

 

严格上说,它不属性一种几何图形,但它很有用,因为它可以同时包含N个几何图形,如下面例子所示。

        <Path Grid.Column="1" Grid.Row="1">
            <Path.Data>
                <GeometryGroup>
                    <LineGeometry StartPoint="32,185" EndPoint="180,230"/>
                    <RectangleGeometry Rect="35,85,136,96" RadiusX="25" RadiusY="5"/>
                    <EllipseGeometry Center="112,130" RadiusX="45" RadiusY="36"/>
                </GeometryGroup>
            </Path.Data>
        </Path>


运行效是如下所示:

 

 

 

下面是本节示例的完整XAML代码。

<phone:PhoneApplicationPage 
    x:Class="Sample.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">

    <phone:PhoneApplicationPage.Resources>
        <Style TargetType="Path">
            <Setter Property="HorizontalAlignment" Value="Stretch"/>
            <Setter Property="VerticalAlignment" Value="Stretch"/>
            <Setter Property="Margin" Value="20"/>
            <Setter Property="Stroke" Value="Blue"/>
            <Setter Property="StrokeThickness" Value="8"/>
        </Style>
    </phone:PhoneApplicationPage.Resources>
    
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Path Grid.Column="0" Grid.Row="0">
            <Path.Data>
                <LineGeometry StartPoint="20,5" EndPoint="200,320"/>
            </Path.Data>
        </Path>
        <Path Grid.Column="1" Grid.Row="0">
            <Path.Data>
                <RectangleGeometry Rect="12,6,125,90" RadiusX="24" RadiusY="30"/>
            </Path.Data>
        </Path>
        <Path Grid.Column="0" Grid.Row="1">
            <Path.Data>
                <EllipseGeometry Center="100,180" RadiusX="55" RadiusY="120"/>
            </Path.Data>
        </Path>
        <Path Grid.Column="1" Grid.Row="1">
            <Path.Data>
                <GeometryGroup>
                    <LineGeometry StartPoint="32,185" EndPoint="180,230"/>
                    <RectangleGeometry Rect="35,85,136,96" RadiusX="25" RadiusY="5"/>
                    <EllipseGeometry Center="112,130" RadiusX="45" RadiusY="36"/>
                </GeometryGroup>
            </Path.Data>
        </Path>
    </Grid>
</phone:PhoneApplicationPage>


 

目录
相关文章
|
6月前
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
535 1
|
3月前
|
存储 负载均衡 Java
如何配置Windows主机MPIO多路径访问存储系统
Windows主机多路径(MPIO)是一种技术,用于在客户端计算机上配置多个路径到存储设备,以提高数据访问的可靠性和性能。本文以Windows2012 R2版本为例介绍如何在客户端主机和存储系统配置多路径访问。
181 13
如何配置Windows主机MPIO多路径访问存储系统
|
8月前
|
Windows
Windows下对于Qt中带 / 的路径的处理
Windows下对于Qt中带 / 的路径的处理
64 9
|
4月前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
155 0
|
4月前
|
Ubuntu Linux Python
如何利用wsl-Ubuntu里conda用来给Windows的PyCharm开发
如何在WSL(Windows Subsystem for Linux)的Ubuntu环境中使用conda虚拟环境来为Windows上的PyCharm开发设置Python解释器。
354 0
|
5月前
|
存储 安全 程序员
Windows任务管理器开发原理与实现
Windows任务管理器开发原理与实现
|
7月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
168 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
6月前
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
298 0
|
6月前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
607 0
|
6月前
|
Linux Windows
Windows查找监听端口对应的进程及其路径
Windows查找监听端口对应的进程及其路径
151 0