2
다음과 같은 문제가 있습니다. 캔버스의 항목을 선택하면 (지울 때) scrollviewer는 항상 0으로 재설정됩니다. 이는 예제 코드의 초점 때문입니다. 초점()가 제거 된 경우에서 ScrollViewer는 좋아하지만, 선택한 항목을 지금 삭제할 수 없습니다>WPF : 캔버스 스크롤 뷰어 재설정 안 함
Mainwindow.Xaml 코드 :!
<Border Grid.Row="1" BorderThickness="1" BorderBrush="Navy" Margin="2" Padding="2" >
<ScrollViewer Name="Posizione_scrollbar" HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
Protected Overrides Sub OnPreviewMouseDown(ByVal e As System.Windows.Input.MouseButtonEventArgs)
MyBase.OnPreviewMouseDown(e)
' usual selection business
Dim designer As DesignerCanvas = TryCast(VisualTreeHelper.GetParent(Me), DesignerCanvas)
If designer IsNot Nothing Then
If (Keyboard.Modifiers And (ModifierKeys.Shift Or ModifierKeys.Control)) <> ModifierKeys.None Then
If Me.IsSelected Then
designer.SelectionService.RemoveFromSelection(Me)
Else
designer.SelectionService.AddToSelection(Me)
End If
ElseIf Not Me.IsSelected Then
If MainViewModel.Instance.ActiveDiagram.STMonitor = False Then
designer.SelectionService.SelectItem(Me)
End If
End If
'Here is the problem: the canvas scrollbar is resetted to 0!
Me.Focus()
End If
'True per avere la gestione col tasto sinistro del mouse
e.Handled = True
End Sub
신난다, 이것은 정확히 내가 필요로했던 +1이었다. 캔버스 'RequestBringIntoView'에서'e.Handled = true'를 제안대로 설정하면 완벽하게 작동합니다. – RobJohnson