9
A
回答
16
您可以將畫布放在滾動查看器中。我試過這個快速測試,它允許我滾動畫布的內容。
<ScrollViewer Height="100" Width="200">
<Canvas Height="400" Width="400">
//Content here
</Canvas>
</ScrollViewer>
編輯:這裏是僅在需要時的渦旋柱顯示了一個例子,它動態地改變作爲畫布大小的變化。
<Button Content="Change Canvas Size" Click="ChangeCanvasSize_Click"/>
<ScrollViewer Height="100" Width="200" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
<Canvas x:Name="TestCanvas">
<TextBlock Text="Test Test"/>
</Canvas>
</ScrollViewer>
更改畫布大小與按鈕點擊:
private void ChangeCanvasSize_Click(object sender, RoutedEventArgs e)
{
TestCanvas.Width = 600;
TestCanvas.Height = 600;
}
在這個例子中,我開始了,沒有滾動條,當我點擊按鈕,擴展畫布,滾動條顯示。
1
好吧,在使用它一段時間後,我想出了一個辦法。創建一個像這樣的XAML
<ScrollViewer>
<Grid x:Name="drawingGrid" SizeChanged="drawingGrid_SizeChanged">
<Canvas Name="drawingCanvas"> /<Canvas>
</Grid>
</ScrollViewer>
on windowLoad函數將畫布高度/寬度設置爲等於網格高度/寬度。更新畫布ht/wd:
- 當網格大小發生變化時,由於mininmize/maximize。
拖動的元素超出畫布的邊界或創建一個新的元素太近帆布
的邊緣double dHeight = 220; if (drawingCanvas.Height < CurrentPosition.Y + dHeight) { // increase canvas height drawingCanvas.Height += (2 * dHeight); }
希望這是一些幫助。如果有人有任何更好的想法或建議來改善這一點,請分享。
0
通過結合馬里奧sannum的答案,你的問題,然後我做了應該在大多數情況下正常工作的解決方案..
<ScrollViewer>
<Grid x:Name="drawingGrid" SizeChanged="drawingGrid_SizeChanged">
<Canvas Name="c">
<TextBlock x:Name="draw_Text" Text="Test Test"/>
</<Canvas>
</Grid>
</ScrollViewer>
void drawingGrid_SizeChanged(object sender, SizeChangedEventArgs e)
{
try { c.Height = draw_Text.ActualHeight; } catch { }
try { c.Width = draw_Text.ActualWidth; } catch { }
}
這應該調整畫布這樣的ScrollViewer可以滾動...
相關問題
- 1. 如何在畫布上繪製畫布
- 2. 使用WPF在畫布上繪製線
- 3. WPF:在畫布上繪製網格?
- 4. 在畫布上繪製數組WPF C#
- 5. 畫布上的滾動條
- 6. 如何顯示滾動條在畫布WPF
- 7. 如何強制滾動條滾動畫布
- 8. WPF強制重繪畫布
- 9. WPF畫布圖形繪製
- 10. 如何讓用戶使用WPF中的畫布繪製線條
- 11. 如何在WPF中的1像素厚的畫布上繪製線條
- 12. [WPF]如何在畫布上繪製網格?
- 13. 如何在wpf畫布上實現多點繪製線?
- 14. 如何在畫布上繪製AdMob?
- 15. 如何在畫布上繪製JPanel?
- 16. 如何在畫布上繪製動畫?(android)
- 17. 在Android瀏覽器的畫布上繪製,頁面滾動?
- 18. PyGtk在滾動條上繪製標記
- 19. 用畫布繪製線條
- 20. 在畫布上繪製ArcTo
- 21. 在畫布上繪製
- 22. 在畫布上繪製EditText
- 23. 在Scala.js上繪製畫布
- 24. 在畫布上繪製SVG
- 25. 繪製在畫布上
- 26. 在子畫布上繪製
- 27. HTML5畫布 - 如何在圖像背景上繪製線條?
- 28. java:如何在畫布上繪製線條
- 29. 如何在實時畫布上用像素繪製線條
- 30. 如何在處理中爲畫布製作滾動條
感謝您的回覆。但事情是,我不知道我的畫布的大小,直到運行時。所以不能有一個固定大小的畫布。 如果用戶在現有畫布的邊界附近單擊,則會增加畫布的尺寸,那麼畫布寬度和/或高度將增加50單位,並顯示滾動條。 – Scooby 2010-05-13 19:00:11
如果將滾動條的可見性設置爲「自動」,這應該仍然有效。我修改我的例子來說明。 – 2010-05-13 20:17:04