C# WPF移动网格错误
我在尝试新的东西。我有几个网格,当我试图抓取一个网格时,我想把它的父网格移到顶部网格周围。此时,我在C# WPF移动网格错误,c#,wpf,C#,Wpf,我在尝试新的东西。我有几个网格,当我试图抓取一个网格时,我想把它的父网格移到顶部网格周围。此时,我在m_startOffset=newvector(translate.X,translate.Y)上得到一个System.NullReferenceException。有人知道我应该如何解决这个问题吗 用户界面: 在XAML中声明父网格的RenderTransform: <Grid x:Name="GRLogin" Margin="1401,292,0,0" HorizontalAlignme
m_startOffset=newvector(translate.X,translate.Y)上得到一个System.NullReferenceException在Grid\u MouseDown方法中的code>。有人知道我应该如何解决这个问题吗
用户界面:
在XAML中声明父网格的RenderTransform:
<Grid x:Name="GRLogin" Margin="1401,292,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Width="501" d:IsHidden="True" Focusable="True">
<Grid.RenderTransform>
<TranslateTransform/>
</Grid.RenderTransform>
...
</Grid>
...
您还可以检查RenderTransform是否为null,在这种情况下,您可以将其设置为:element.RenderTransform=new TranslateTransform()代码>谢谢,出于某种奇怪的原因,当我这样做时,它什么也做不了。看起来te程序没有响应,因为它不会对任何其他输入做出反应。
private void Grid_MouseDown(object sender, MouseButtonEventArgs e)
{
FrameworkElement element = ((Grid)sender).Parent as Grid;
TranslateTransform translate = element.RenderTransform as TranslateTransform;
m_start = e.GetPosition(GridHost);
m_startOffset = new Vector(translate.X, translate.Y);
element.CaptureMouse();
}
private void Grid_MouseMove(object sender, MouseEventArgs e)
{
FrameworkElement element = ((Grid)sender).Parent as Grid;
TranslateTransform translate = element.RenderTransform as TranslateTransform;
if (element.IsMouseCaptured)
{
Vector offset = Point.Subtract(e.GetPosition(GridHost), m_start);
translate.X = m_startOffset.X + offset.X;
translate.Y = m_startOffset.Y + offset.Y;
}
}
private void Grid_MouseUp(object sender, MouseButtonEventArgs e)
{
FrameworkElement element = ((Grid)sender).Parent as Grid;
element.ReleaseMouseCapture();
}
<Grid x:Name="GRLogin" Margin="1401,292,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Width="501" d:IsHidden="True" Focusable="True">
<Grid.RenderTransform>
<TranslateTransform/>
</Grid.RenderTransform>
...
</Grid>