调整窗口大小时,我无法在网格中定位元素

时间:2014-08-13 04:30:50

标签: c# wpf vb.net xaml

我在另一个网格中有一个50x50可拖动网格,我可以用光标移动。 (我忘了我正在使用DraggableExtender类

问题在于,无论容器网格如何调整大小,我都希望可移动网格相对定位在其容器网格内。我现在的解决方案是在移动时动态地改变可移动网格的Horizo​​ntalAlignment和VerticalAlignment,但这很麻烦并且不能很好地工作。

网格中的相对定位是XAML中最容易做的事情之一,但是当你有可拖动元素时则不行;(

有什么想法吗?

编辑代码和图片:

我的XAML:

<Grid Margin="10" ClipToBounds="True" Background="#FFB4B4B4">
  <Grid Name="testGrid" MouseLeftButtonDown="testGrid_MouseLeftButtonDown" MouseLeftButtonUp="testGrid_MouseLeftButtonUp" RenderTransformOrigin="0.5,0.5" Height="100" Margin="50,0,0,0" Width="100" Background="#FFE6E6E6" local:DraggableExtenderGrid.CanDrag="true" HorizontalAlignment="Center"/>
</Grid>

我使用了一个DraggableExtender类(显示为here),我已编辑该类以应用于Grid而不是Canvas(我希望从网格中获得更好的结果..但两个容器产生相同的结果,即使是画布上的原始类。)

This是我2个网格的图片。我可以在它的父网格中移动较小的网格,但是我想在窗口调整大小后保持相对定位。 This是我调整窗口大小时的样子。在这个特定的例子中,理想情况下,网格在两张图片中水平和垂直地保持偏离中心。

1 个答案:

答案 0 :(得分:0)

您可以尝试将Grid置于Canvas内而不是..

看看here