2013-04-05 52 views
0

我有定義爲1000 x 3000px的WPF項目中的畫布。只顯示在WPF中的畫布的一部分C#

現在我使用剪輯方法從點(0,1000)到(1000,2000)。 它將在該畫布的中間。 現在我想在ScrollViewer中展示它,但是存在一個問題 - 在剪輯部分前後有很多空間。如何將裁剪後的畫布對齊?

更具體:畫布包含3頁(1000x1000px),現在我想剪輯中間頁面並對其進行操作。但在我的項目中,我想顯示一個頁面頂部操作scrollviewer。裁剪後我得到正確的畫布部分,但前後有空格。

怎麼辦?也許我需要使用另一種方法,而不是剪輯?

或者也許別的東西?例如要將該畫布在每隔1000像素之後分割......像在文字:)

+0

爲什麼不把每個頁面分別放到ScrollViewer中? – Clemens 2013-04-05 15:41:40

+0

有沒有任何選項可以顯示像我想要沒有scrollviewer的畫布? – miecio1998 2013-04-08 06:19:19

回答

0

下面是我提出的解決方案。你所要做的就是把你的畫布換成你的畫布。

<Window x:Class="StackOverflow.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:StackOverflow" 
     Title="MainWindow" Height="350" Width="525"> 
    <Window.Resources> 
     <local:AllNoneCheckboxConverter x:Key="converter"/> 
     <local:ValuePointConverter x:Key="VPConverter"/> 
    </Window.Resources> 
    <Grid> 
     <ScrollViewer VerticalScrollBarVisibility="Hidden" 
         HorizontalScrollBarVisibility="Visible" 
         Width="1000" Height="1000" 
         > 
      <Canvas Width="3000" Height="1000"> 
       <Canvas.Background> 
        <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> 
         <GradientStop Color="Red" Offset="0.3"/> 
         <GradientStop Color="Blue" Offset="0.6"/> 
         <GradientStop Color="Black" Offset="1"/> 
        </LinearGradientBrush> 
       </Canvas.Background> 
      </Canvas> 
     </ScrollViewer> 
    </Grid> 
</Window> 
+0

好的,還有其他的例子嗎? – miecio1998 2013-04-05 13:39:32

+0

我的答案有些不盡人意之處嗎?我沒有改善它的問題,但我不知道你在找什麼。 – 2013-04-05 21:19:37

+0

謝謝user1489726這個答案,這很好,但是當我嘗試滾動頁面時,我可以看到第一頁的一部分和另一部分,我不想要那個..如何解決這個問題? – miecio1998 2013-04-08 06:58:23