2016-03-28 26 views
4

我有一個畫布將其從後面的代碼和我的XAML生成的圖像看起來像下面 滾動條與和縮小XAML畫布變焦

<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" > 
    <WrapPanel > 
     <Grid ScrollViewer.HorizontalScrollBarVisibility="Visible" > 
      <Grid.RowDefinitions> 
       <RowDefinition Height="25" /> 
       <RowDefinition Height="20" /> 
       <RowDefinition Height="*" /> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="350"/> 
       <ColumnDefinition Width="*"/> 
      </Grid.ColumnDefinitions> 

      <Menu x:Name="menu1" Grid.Row="0" BorderBrush="AliceBlue" VerticalAlignment="Top" FontFamily="Comic Sans MS" DockPanel.Dock="Top" RenderTransformOrigin="0.48,3.04" > 
       <MenuItem Header="_File" Width="92" FontSize="16" FontWeight="Normal" FontFamily="Century Gothic" > 

        <MenuItem Header="_Print"/> 
        <MenuItem Header="_Print Preview"/> 
        <MenuItem Header="_Exit"/> 

       </MenuItem> 
      </Menu> 

      <ToolBar x:Name="toolBar1" Grid.Row="1" Grid.RowSpan="2" BorderBrush="Red" BorderThickness="3" Margin="0,0,0,900" Height="30" VerticalAlignment="Top" DockPanel.Dock="Top" > 
       <Button x:Name="Zoomin" Click="menuItemZoomin_Click" HorizontalAlignment="Left" Margin="1" Width="90" FontSize="16" FontWeight="SemiBold" Height="55" RenderTransformOrigin ="0.917,0.587" IsHitTestVisible="True" IsEnabled="True" FontFamily="Century Gothic" Content="Zoom In" /> 
       <Button x:Name="Zoomout" Click="menuItemZoomout_Click" HorizontalAlignment="Left" Margin="1" Width="90" FontSize="16" FontWeight="SemiBold" RenderTransformOrigin="0.917,0.587" Height="55" FontFamily="Century Gothic" Content="Zoom Out"/> 
       <!--<Button x:Name="Print" Click="PrintBtn_Click" HorizontalAlignment="Left" Margin="1" Width="90" FontSize="16" FontWeight="SemiBold" RenderTransformOrigin="0.917,0.587" Height="55" FontFamily="Century Gothic" Content="Print"/>--> 
      </ToolBar> 



      <Canvas x:Name="cvsWarehouse" Grid.Row="1" Focusable="True" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible" MouseWheel="Canvas_MouseWheel" RenderTransformOrigin="0.5,0.5" Margin="15,144,122,151" Grid.ColumnSpan="2" > 
       <Canvas.LayoutTransform> 
        <TransformGroup> 
         <ScaleTransform x:Name ="st1" ScaleX="{Binding Value, ElementName=uiScaleSlider}" 
          ScaleY="{Binding Value, ElementName=uiScaleSlider}" /> 
         <TranslateTransform Y="100" /> 
        </TransformGroup> 

       </Canvas.LayoutTransform> 
      </Canvas> 
     </Grid> 
    </WrapPanel> 

cvsWarehouse是實際的畫布,其中很多代碼背後的代碼生成的圖像和輸出窗口如下所示。 Scrollbar showing only half

當它被最大化時,它不顯示滾動條。我瘋狂搜索,盡我所能,但仍然無法解決問題。我想滾動直到畫布結束。下面還有更多圖片,但wrappanel或佈局變換沒有工作在這裏。這也有放大和縮小,但它仍然不會顯示滾動條。

Maximized but still content is there below but no scrollbars 這裏是我的意思,當我說的內容仍然存在低於

Such a huge canvas

如何讓這個滾動條通過了可見。像放大或縮小或最小化或最大化

+0

哇......現在我看到XAML真的很痛苦。我沒有看到有人爲此問題提供解決方案。它遍佈互聯網,但沒有適當的解決方案。 –

+0

真的......仍然沒有解決辦法。 WPF真的把我搞砸了 –

+0

有人可以看看這個問題嗎?我正在尋找這個問題的解決方案。請嘗試理解。它已經一個星期了,沒有什麼東西搬到這個問題 –

回答

0

我有一個類似的問題,我發現這個問題的第一個答案是有幫助的 - (LayoutTransform on certain elements in canvas?)。將ScrollViewer應用於畫布(應用了佈局變換的元素)。畫布大小的變化必須通過滾動條查看才能顯示。此外,我不認爲你需要這些內部的畫布標籤 - ScrollViewer.CanContentScroll =「True」ScrollViewer.Horizo​​ntalScrollBarVisibility =「可見」ScrollViewer.VerticalScrollBarVisibility =「可見」。這些定義存在於ScrollViewer標籤中應該呈現所需的功能。