2011-08-11 2 views
0

tabcontrolのキャンバスオブジェクトをホストするSilverlightプロジェクト。私は全体のタブコントロールをスクロールビューワでラップして、短い表示で垂直方向にスクロールしてキャンバス全体を見ることができるようにしたい。h/wが設定されたsilverlightスクロールビューワとキャンバス。たくさんの部屋があっても縦のバーが隠れるようにする

私のプロジェクトを実行すると、スクロールバーに必要なスペースよりも垂直方向のスペースが多い場合でも、スクロールバーの垂直バーは常に表示されます。

私がここで達成しようとしているのは、1280x768の最小解像度がスクロール可能で、それ以上のものがスクロールバーを隠していることです。私のラップトップは768の高さですが、私のキャンバスは1280x1024を念頭に置いて開発されました。だから私は誰もが自分の解像度に応じて一度にキャンバスを見るかスクロールできるようにこれを設定する方法が欲しい。

いつも見える理由は何ですか?キャンバスの幅と高さを設定しようとしました。私はアウターグリッドのアラインメントにストレッチを設定しようとしました。私のような他の問題を探している間にこれらのヒントを見た。

いくつかのコード:

<Grid x:Name="LayoutRoot" MinHeight="768" MaxHeight="1024" MinWidth="1024" MaxWidth="1280" Background="#FF6A6868" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
          <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="0.775*"/> 
       <ColumnDefinition Width="0.225*"/> 
      </Grid.ColumnDefinitions> 
      <ScrollViewer VerticalScrollBarVisibility="Auto" MinHeight="768" MaxHeight="1000" MinWidth="1024" MaxWidth="1280" Width="1280" Grid.ColumnSpan="2"> 
    <sdk:TabControl TabStripPlacement="Top" Grid.ColumnSpan="2"> 
       <sdk:TabItem Margin="0" Header="Main Floor"> 
        <Canvas x:Name="Main_Floor" HorizontalAlignment="Left" Height="1024" MinHeight="768" UseLayoutRounding="False" VerticalAlignment="Top" Width="1280" > 

....私の "メインフロア" キャンバス内の子キャンバスアイテムがたくさん。子キャンバスオブジェクトには多くのパスオブジェクトが含まれています。メインフロアのキャンバス幅/高さよりも背の高い、または幅の広いものはありません。

 <sdk:TabItem Margin="0" Header="Mezzanine"> 
        <Canvas x:Name="Upstairs" HorizontalAlignment="Left" Height="1000" UseLayoutRounding="False" VerticalAlignment="Top" Width="1280"> 

..他のタブ。子キャンバスオブジェクトについても同じことが言えます。

+0

Xamlのサンプルを提供できますか?説明よりもはるかに簡単に修正できます:) –

+0

関連するコードで更新された質問。 – TWood

+0

ありがとうございますが、それは問題を再現するには不十分です。私はあなたが話すスクロールバーを手に入れません。問題を再現するための完全な最小限のXamlサンプルを再現できますか? –

答えて

0

解決策は、アプリケーションの深いネストされた隠し高さ値であることが判明しました。私は物事を厳しいやり方で行い、プロジェクトの各タブを1つずつ作り直しました。それが見つかったときです。

おかげさまで、お手数ですが、HiTechMagicにお問い合わせください。

関連する問題