首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在画布中绑定形状/控件的绝对坐标

如何在画布中绑定形状/控件的绝对坐标
EN

Stack Overflow用户
提问于 2016-06-14 10:36:40
回答 1查看 1.3K关注 0票数 0

在Windows8.1Metro应用程序上,我尝试将视图模型中的一组形状绑定到MainPage.xaml中。每个形状都有一个LeftTop和一个PathData,它将是一个RectangleGeometry,其中包含我希望在相应位置在画布中绘制的矩形。

这是XAML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Grid Background="Black">
    <ItemsControl ItemsSource="{Binding Shapes}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Canvas />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemContainerStyle>
            <Style TargetType="ContentPresenter">
                <Setter Property="Canvas.Top" Value="{Binding Top}"/>
                <Setter Property="Canvas.Left" Value="{Binding Left}"/>
            </Style>
        </ItemsControl.ItemContainerStyle>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Path Data="{Binding PathData}" Stroke="White" StrokeThickness="3" Canvas.Left="{Binding Left}" Canvas.Top="{Binding Top}"/>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Grid>

数据上下文被设置并正确工作。我填充了来自MainViewModel的形状,并且矩形确实出现在屏幕上,但问题是我无法将矩形放置在Canvas内的确切LeftTop位置,即它们只是放置在(0,0)。

我尝试了绑定PathCanvas.LeftCanvas.Top (这是我尝试过的明显的方法),也尝试用一个Style (我从WPF示例中找到的方法)来设置ItemContainerStyle,这两种工作都不是这样的(我在xaml中添加了这两个方法供参考)。

那么,我做错了什么,如何使矩形出现在相应的位置?

编辑:我的问题和 this one for WPF是一样的,只是我的目标是windows metro/uwp,而这个被接受的答案不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-14 12:18:06

通过绑定到Transform来解决这个问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Path Data="{Binding PathData}" Stroke="White" StrokeThickness="3">
    <Path.RenderTransform>
         <CompositeTransform TranslateX="{Binding Left}" TranslateY="{Binding Top}"/>
    </Path.RenderTransform>
</Path>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37819679

复制
相关文章
Android获得控件在屏幕中的绝对坐标
计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标
他叫自己MR.张
2019/07/01
2.1K0
绑定事件中 如可控制函数的执行次数
var flag = true; function onlyOne() { if(flag) { "这里是要执行的代码"; } flag = false//该方法是控制函数仅执行一次 因为flag是全局变量 onlyOne()函数执行一次后flag就变成false了 函数就执行不了了
大当家
2018/06/28
2.3K0
关于webform中控件的列表数据的绑定
1、使用这些控件的方法主要是以下步骤;
静心物语313
2020/03/24
1.9K0
关于webform中控件的列表数据的绑定
VC如何获取对话框中控件的坐标
VC如何获取对话框中控件的坐标 GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。 GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,它的top和left都为0,right和botton是宽和高,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。   ClientToScreen把客户区坐标系下的RECT坐标转换为屏
_gongluck
2018/03/08
2.6K0
WPF Image控件的绑定
在我们平时的开发中会经常用到Image控件,通过设置Image控件的Source属性,我们可以加载图片,设置Image的source属性时可以使用相对路径也可以使用绝对路径,一般情况下建议使用绝对路径,类似于下面的形式Source="/Demo;Component/Images/Test.jpg"其中Demo表示工程的名称,后面表示具体哪个文件夹下面的哪个图片资源,在程序中,我们甚至可以为Image控件设置X:Name属性,在后台代码中动态去改变Image的Source,但我个人认为这种方式不太适合最大量的图片切换,而且增加了View层和代码之间的耦合性,不是和复合MVVM的核心设计思想,所以今天就总结一下Image的动态绑定的形式。
hbbliyong
2019/10/24
1.8K0
dropdownlist控件绑定_dropdownlist控件联动
也谈谈动态绑定dropdownlist CSDN 2004年7月31日 <script src=”http://www.jaron.cn/cms-server/ArticleViewTim
全栈程序员站长
2022/11/08
1.4K0
Fabric.js 拖拽顶点修改多边形形状
其实 Fabric.js 官网也有这个demo:Fabric.js demos · Custom controls, polygon 。但这个demo可能对于刚接触 Fabric.js 的工友来说有点过于复杂,所以本文就把该demo进一步简化,简化到老奶奶也能看得懂的!
德育处主任
2023/05/11
2K0
Fabric.js 拖拽顶点修改多边形形状
【Android UI】Canvas 画布 ⑤ ( Canvas 坐标系 | Canvas 绘图坐标系变换示例 )
Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ;
韩曙亮
2023/03/30
1.4K0
【Android UI】Canvas 画布 ⑤ ( Canvas 坐标系 | Canvas 绘图坐标系变换示例 )
坐标拾取系统定位_cad移动到绝对坐标
public GameObject[] cameras;//移动camera物体
全栈程序员站长
2022/09/21
3670
Qml获取某个控件的全局坐标
  点击详情(detail)按钮调出菜单列表。菜单栏的位置需要定位详情按钮的下面,那么就需要知道具体坐标。
Qt君
2023/03/17
2.8K0
Qml获取某个控件的全局坐标
winfrom如何在listview中添加控件
private Button btn = new Button(); private void Form1_Load(object sender, EventArgs e) { ListViewItem[] lvs = new ListViewItem[3]; lvs[0] = new ListViewItem(new string[] { "行1列1", "行1列2", "" }); l
码农阿宇
2018/04/18
2.6K0
如何在 Matlab 中绘制带箭头的坐标系
方法二:使用 Matlab 自带的一个图窗标注函数 annotation,具体用法请点击查看文档,简而言之,该函数可以在图窗指定位置绘制图形(箭头,矩形,椭圆等)或文字。其中绘制箭头的调用格式为
iam002
2021/08/18
8.4K0
如何在 Matlab 中绘制带箭头的坐标系
canvas清除画布-ZBrush中如何清除画布中多余图像
  ZBrush是一款数字雕刻与绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维行业。它的简洁化、智能化和人性化的设计无不让众多用户所折服。刚接触它的用户可能会因为找不到相关命令或不熟悉而觉得它有些复杂canvas清除画布,那么,在ZBrush®软件中如何对多余模型进行清除的操作有些刚接触的用户会找不清,本文就删除画布中的多余模型做详细讲解。
宜轩
2022/12/29
2.5K0
【Android UI】Canvas 画布 ④ ( Canvas 坐标系 | Canvas 自身坐标系 | Canvas 绘图坐标系 )
Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ;
韩曙亮
2023/03/30
1.6K0
如何在控件的设计时得到窗体设计器中的所有控件
本文转载:http://www.cnblogs.com/Ricky81317/archive/2007/01/04/611942.html
跟着阿笨一起玩NET
2018/09/18
1.2K0
win10 uwp 获得元素绝对坐标
有时候需要获得一个元素,相对窗口的坐标,在修改他的位置可以使用。 那么 UWP 如何获得元素坐标? 我提供了一个方法,可以获得元素的坐标。
林德熙
2018/09/18
8650
win10 uwp 获得元素绝对坐标
软件测试|超好用超简单的Python GUI库——tkinter(十四)
我们知道我们可以使用pillow绘制不同形状的图形,但是我们能不能使用tkinter实现这个功能呢,当然可以,tkinter也可以实现图形的绘制,并且可以将绘制的图形添加到我们的GUI中。
霍格沃兹测试开发Muller老师
2023/06/02
9190
使用Word将图片裁剪成各种不同形状,如圆形。
1、点击[插入] 2、点击[形状] 3、点击[椭圆] 4、点击[文本] 5、按<Shift>键 6、点击[格式] 7、点击[形状填充] 8、点击[图片] 9、点击[来自文件] 10、点击[早餐优惠券图片] 11、点击[1.jpg] 12、点击[插入]
裴来凡
2022/05/28
1.9K0
使用Word将图片裁剪成各种不同形状,如圆形。
点击加载更多

相似问题

检测画布中的形状坐标

42

如何在D3中访问“绝对”对象坐标与画布GUI坐标?

13

打开XML:获取子形状的绝对坐标

11

分隔形状,如行分隔画布+选择点从数组中绘制形状

37

WPF绑定用户控件坐标

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文