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. 如何強制滾動條滾動畫布
- 4. WPF畫布圖形繪製
- 5. 如何在WPF中的1像素厚的畫布上繪製線條
- 6. [WPF]如何在畫布上繪製網格?
- 7. 如何在畫布上繪製AdMob?
- 8. 如何在畫布上繪製JPanel?
- 9. 如何在畫布上繪製動畫?(android)
- 10. 在Android瀏覽器的畫布上繪製,頁面滾動?
- 11. 在畫布上繪製ArcTo
- 12. 繪製在畫布上
- 13. 在畫布上繪製
- 14. 在子畫布上繪製
- 15. 在Scala.js上繪製畫布
- 16. 在畫布上繪製SVG
- 17. 如何在處理中爲畫布製作滾動條
- 18. 畫布頁面上的空滾動條?
- 19. J2ME畫布上的垂直滾動條
- 20. 如何繪製一個矩形上一個WPF畫布
- 21. Silverlight畫布滾動條
- 22. 如何在鼠標移動時在畫布上繪製弧?
- 23. 如何繪製onResume上的畫布
- 24. 如何動畫滾動條?
- 25. 如何在html5畫布上繪製移動的重複圖案
- 26. 在畫布上繪製GOOD LOOKING(如Flash)線條(HTML5) - 可能嗎?
- 27. 在控制檯上繪製HTML5畫布
- 28. 直接在畫布上繪製位圖vs在畫布上
- 29. 如何在HTML5畫布上正確繪製多條不同寬度的線條?
- 30. 如何變暗畫布或畫布上繪製的圖像?
感謝您的回覆。但事情是,我不知道我的畫布的大小,直到運行時。所以不能有一個固定大小的畫布。 如果用戶在現有畫布的邊界附近單擊,則會增加畫布的尺寸,那麼畫布寬度和/或高度將增加50單位,並顯示滾動條。 – Scooby 2010-05-13 19:00:11
如果將滾動條的可見性設置爲「自動」,這應該仍然有效。我修改我的例子來說明。 – 2010-05-13 20:17:04