首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wpf路径数据差异

wpf路径数据差异
EN

Stack Overflow用户
提问于 2016-01-08 16:07:49
回答 1查看 311关注 0票数 1

所以我试图创建一个由多个形状组成的向量路径。所期望的目标是..。

但是,我看到了以多种方式编写的路径数据。一种方法是这样的..。

代码语言:javascript
复制
M10,0L20,10 0,10z

这条路可以这样写..。

代码语言:javascript
复制
M10.2042655289777,2.10534975661348L20.2042655289777,12.1053497566135 0.204265528977683,12.1053497566135z

上面的两个片段都创建了这个形状。

从我自己的分析中,我发现第一个代码片段是可扩展的,并且适合放置在其中的按钮的内容。第二种方法似乎是路径点的更精确的坐标。有没有办法创建一个具有精确坐标的路径,然后把它转换成更一般的路径,比如M10,0L20,10,10z。或者,如果可以的话,我可以在保持其可伸缩性的同时创建我想要的形状。

这是我的路径数据..。

代码语言:javascript
复制
<Path Fill="Blue" Data="M16.5,4.50000035762787L25.5,4.50000035762787 25.5,17.5000002384186 16.5,17.5000002384186z M2.5,4.49999994039536L11.5,4.49999994039536 11.5,25.5000002384186 2.5,25.5000002384186z M0.5,0.5L27.5,0.5 27.5,1.50000023841858 0.5,1.50000023841858z"></Path>

我想我总能用Stretch="Uniform"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-13 20:16:39

如果您希望形状全部为一种颜色,则可以使用单个path对象来定义它。

代码语言:javascript
复制
<Grid Width="250" Height="250">
    <Border BorderBrush="Black" BorderThickness="1">
        <Path Margin="4" 
              Fill="Red" 
              Stretch="Uniform" 
              VerticalAlignment="Top" 
              Data="M 0,0 L 100,0 L 100,15 L 0,15 z 
                    M 5,20 L 40,20 L 40,100 L 5,100 z 
                    M 60,20 L 95,20 L 95,70 L 60,70 z" />
    </Border>
</Grid>

注意,由于拉伸被设置为uniform,路径的显示大小受到父容器的限制。path元素中使用的坐标只是相对值。更改网格的大小将缩小路径绘制,保持距边框4像素的距离。

如果你想用多种颜色绘制形状,那么它会变得稍微复杂一些。您可以使用多个路径对象,但为了正确定位它们,必须使用一对移动值来定义每个数据字符串开头的总体大小(仍然是相对单位),从而将它们强制放入同一个坐标系中。

代码语言:javascript
复制
<Grid Width="250" Height="250">
    <Border BorderBrush="Black" BorderThickness="1">
        <Grid>
            <Path Margin="4" Fill="Red" Stretch="Uniform" 
                  Data="M 100,100 M 0,0 L 100,0 L 100,15 L 0,15 z" />

            <Path Margin="4" Fill="Blue" Stretch="Uniform" 
                  Data="M 0,0 M 100,100 M 5,20 L 40,20 L 40,100 L 5,100 z" />

            <Path Margin="4" Fill="Green" Stretch="Uniform" 
                  Data="M 0,0 M 100,100 M 60,20 L 95,20 L 95,70 L 60,70 z" />
        </Grid>
    </Border>  
</Grid>

第二个网格是必需的,因为边框只能有一个子网格。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34681306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档