2017-05-19 8 views
0

以下のコードでは、グリッドをCanvasで囲んでグリッドサイズを制限しています。ただし、この動作はWPFでは行われません。CanvasがUWPのグリッドサイズに影響を与えないようにする方法

<Canvas Background="AliceBlue"> 
    <Grid BorderBrush="Green" BorderThickness="50" Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> 
     <Grid.Resources> 
      <Style TargetType="Button"> 
       <Setter Property="BorderBrush" Value="Yellow" /> 
       <Setter Property="BorderThickness" Value="5" /> 
       <Setter Property="HorizontalAlignment" Value="Stretch" /> 
       <Setter Property="VerticalAlignment" Value="Stretch" /> 
      </Style> 
     </Grid.Resources> 
     <!--<Button Content="Button" />--> 
    </Grid> 
</Canvas> 

enter image description here

+0

子要素は、全体のキャンバスを埋めることはありません。彼らは自分自身のデフォルトの幅と高さを取るでしょう。 – AVK

+0

@AVKNaidu、その場合、どうすればこの問題を解決することを提案しますか?言い換えれば、グリッドをキャンバススペース全体に塗りつぶす方法 – usefulBee

+1

依存する、アイテムをキャンバス上の相対位置で重ねる計画がある場合、それを塗りつぶすには、グリッドの幅と高さをバインドする必要がありますキャンバスの実際の幅と高さ。それがあなたが望んでいない場合は、キャンバスを完全に削除します。 – AVK

答えて

1

@AVKNaiduは、示唆したように「それを埋めるためには、実際の幅と高さをキャンバスにグリッドの幅と高さをバインドする必要があります。」

ワーキングコード:キャンバスで

<Canvas Background="AliceBlue" x:Name="TheCanvas"> 
    <Grid BorderBrush="Green" BorderThickness="50" 
      Width="{Binding ActualWidth, ElementName=TheCanvas}" 
      Height="{Binding ActualHeight, ElementName=TheCanvas}"> 
     ........... 
    </Grid> 
</Canvas> 
関連する問題