2017-10-19 249 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

不幸的是,沒有「修復」圖表圖片 - 圖表將動態生成並且可以改變。 但也許有辦法讓「完整」滾動查看器圖片,並將其綁定到圖像控件? –

+0

只要根據變化的圖片更改'Image'控件的'Source'屬性。 「Image」控件應該是固定的。對? – Iron

+0

是的,你是對的。你可以使用綁定或者只是設置'FullImage.Source = xxx; ThumbnailImage.Source = xxx;'在代碼隱藏中。 – Iron