在代码隐藏中获取运行时网格的位置

用户3796261

我在一个用户控件的代码隐藏文件中。在此用户控件中,我有一个名为GBoard的网格。我在主XAML文件中创建了此用户控件的一个实例,并将其命名为GameBoard。现在,我处于前面所说的代码背后,我想获得GameBoard的X / Y位置。如果我获取Margin,则所有值都设置为0。如果我执行Canvas.GetTop(this),它将以NaN形式返回。如何获取这些坐标?我认为这并不是我的代码中的错误,因为一切正常,只是我似乎无法掌握坐标。

Position = new Point(Canvas.GetTop(GameBoard), Canvas.GetLeft(GameBoard));

获取值的NaN。

boardMargin = GameBoard.Margin;  

boardMargin即使位于屏幕中心也为0,0,0,0。

<UserControl x:Class="UserControls.Board"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         xmlns:controls="clr-namespace:UserControls"
         d:DesignHeight="300" d:DesignWidth="300">

    <Grid Name="GBoard">
        <Grid.ColumnDefinitions>
            //lots of these
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            //lots of these
        </Grid.RowDefinitions>
    </Grid>
</UserControl>

那是用户控件。我编辑了大量的col和row def空间。

<Page x:Class="GUI.SGUI"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:controls="clr-namespace:UserControls"
  Title="SGUI" Height="1000" Width="1000">

    <Canvas x:Name="LetterCanvas">
        <controls:Board x:Name="GameBoard" Height="Auto" Canvas.Left="120" Canvas.Top="164" Width="Auto"/>
    </Canvas>
</Page>

我发现,如果从主类访问位置,则可以获取坐标;如果从用户控件的代码访问,则不能获取坐标。因此,如果必须的话,我可以做些骇人听闻的事情,但是我宁愿在用户控件内部获取坐标。

用户控件中的代码需要访问Canvas才能获得GameBoard的位置,因为WPF中的Canvas元素使用绝对定位。

假设LetterCanvas将成为GameBoard的父元素-尝试在后面的代码中为GameBoard用户控件使用此元素:

double xPosition = Canvas.GetLeft(this);
double yPosition = Canvas.GetTop(this);

注意:必须从方法而不是构造函数调用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++代码中的运行时错误

来自分类Dev

代码C ++中的运行时错误

来自分类Dev

代码中的运行时错误

来自分类Dev

在 istio 网格中运行时 Redis 断管错误

来自分类Dev

Ember.js在运行时获取位置类型

来自分类Dev

获取我的python代码的运行时错误

来自分类Dev

运行时权限代码不适用于精细位置吗?android运行时位置权限

来自分类Dev

在Azure Cloud Shell中运行时Ansible剧本的位置

来自分类Dev

获取运行时错误

来自分类Dev

在运行时设置相机位置与导航网格发生冲突

来自分类Dev

在代码中设置“用户定义的运行时属性”

来自分类Dev

R-dplyr中的代码行运行时间

来自分类Dev

从代码名One中调用运行时方法

来自分类Dev

Linux Shell脚本中的运行时代码生成

来自分类Dev

使用代码在OSGi环境中增强运行时

来自分类Dev

如何在运行时(安装时)从 wix 源代码中获取 MSI 文件所在的路径

来自分类Dev

从表中获取总正常运行时间

来自分类Dev

在运行时在AngularJS中获取HTML元素的宽度

来自分类Dev

在运行时获取元组中索引的类型

来自分类Dev

如何在Kotlin中获取变量的运行时类?

来自分类Dev

在Scala中的运行时获取多态类的实例

来自分类Dev

在运行时从元组中获取模板功能元素?

来自分类Dev

从运行时创建的JTextField中获取值

来自分类Dev

在运行时从python Literal类型中获取文字?

来自分类Dev

如何从Java中的运行时执行获取实时输出?

来自分类Dev

在链表实现中获取运行时错误

来自分类Dev

在运行时在AngularJS中获取HTML元素的宽度

来自分类Dev

在Unity中获取运行时创建的列表项的属性

来自分类Dev

如何从运行时添加的javafx TextField中获取文本?

Related 相关文章

热门标签

归档