2017-10-19 19 views
0

私のWPFアプリケーションで私はスクロールビューアを使用して図を表示します。 ダイアグラムは非常に大きくて複雑な場合があり、通常はScrollviewerコントロールのダイアグラムのスマートな部分のみを表示できます。WPFスクロールビューアの概要コントロール

図のナビゲーションを容易にするために、図の全体図を含むコントロールを作成します。このコントロール内の特定の場所をクリックすると、スクロールビューアは図をこの場所にスクロールします。

Something like that

それを行うための最も簡単な方法は何ですか? 私の恐るべき英語には大変感謝して申し訳ありません。

+0

最も簡単には、それを買うか、許容できる無料版を見つけることです。あなたが望むものは「ズームコンテンツコントロール」と呼ばれます。お気に入りの検索エンジンでいくつかのオプションが索引付けされます。 – Will

答えて

1

XAML:

<Grid> 
    <ScrollViewer x:Name="TheScrollViewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> 
     <Image x:Name="FullImage" Source="Test.jpg" Stretch="None"></Image> 
    </ScrollViewer> 
    <Border BorderBrush="Red" BorderThickness="1" VerticalAlignment="Bottom" HorizontalAlignment="Right"> 
     <Image x:Name="ThumbnailImage" Height="100" Source="Test.jpg" MouseDown="ThumbnailImage_OnMouseDown"/> 
    </Border> 
</Grid> 

コードビハインド:

private void ThumbnailImage_OnMouseDown(object sender, MouseButtonEventArgs e) 
{ 
    var position = e.GetPosition(ThumnailImage); 

    var horOffset = position.X/ThumnailImage.ActualWidth * FullImage.ActualWidth; 
    var verOffset = position.Y/ThumnailImage.ActualHeight * FullImage.ActualHeight; 

    TheScrollViewer.ScrollToHorizontalOffset(horOffset); 
    TheScrollViewer.ScrollToVerticalOffset(verOffset); 
} 
+0

不幸にも、「修正」ダイアグラム画像はありません。ダイアグラムは動的に生成され、変更可能です。 "フル" Scrollviewer画像を取得してImageコントロールにバインドする方法がありますか? –

+0

画像の変化に合わせて 'Image'コントロールの' Source'プロパティを変更するだけです。 'Image'コントロールは修正する必要があります。右? – Iron

+0

はい、そうです。バインディングを使うこともできますし、 'FullImage.Source = xxx;を設定することもできます。 ThumbnailImage.Source = xxx; 'のコードビハインドで表示されます。 – Iron

関連する問題