아래의 코드처럼 listboxitem이 있습니다. listboxitem을 오른쪽으로 수평으로 드래그하여 사라지려고합니다. 하지만 드래그하면이 오류가 표시됩니다.WP7에서 listboxitem을 드래그하는 방법은 무엇입니까?
변형 .X + = e.HorizontalChange; [NullReferenceException]
나는 Watch를 검사하여 e.HorizontalChange의 값이 65.0임을 알았는데, 왜 그것이 오류를 보여 줍니까? 그리고 어떻게 내 목표를 성취합니까?
<DataTemplate x:Key="TasksListDataTemplate">
<StackPanel x:Name="stackPanel" Margin="0,0,0,10" RenderTransformOrigin="0.5,0.5">
<toolkit:GestureService.GestureListener>
<toolkit:GestureListener
DragDelta="taskitem_DragDelta"
</toolkit:GestureService.GestureListener>
<TextBlock x:Name="textBlock" TextWrapping="Wrap" Text="{Binding Title}" FontSize="{StaticResource PhoneFontSizeLarge}" HorizontalAlignment="Left" Width="432" RenderTransformOrigin="0.5,0.5">
</TextBlock>
<StackPanel x:Name="stackPanel1" Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock x:Name="textBlock1" TextWrapping="Wrap" Text="due:" d:LayoutOverrides="Width" FontSize="{StaticResource PhoneFontSizeMedium}" RenderTransformOrigin="0.5,0.5">
</TextBlock>
<TextBlock x:Name="textBlock2" TextWrapping="Wrap" Text="{Binding DueDate}" d:LayoutOverrides="Width" FontSize="{StaticResource PhoneFontSizeMedium}" RenderTransformOrigin="0.5,0.5">
</TextBlock>
</StackPanel>
</StackPanel>
</DataTemplate>
및 파일 뒤에 코드는 StackPanel의이 TranslateTransform
가 지정되어 있지 않기 때문에 TranslateTransform
으로 캐스팅 할 때 .RenderTransform의 속성이 null
private void taskitem_DragDelta(object sender, DragDeltaGestureEventArgs e)
{
TranslateTransform transform = (sender as StackPanel).RenderTransform as TranslateTransform;
transform.X += e.HorizontalChange;
}
매력처럼 작동합니다. 해결책과 설명에 감사드립니다. –