9

Canvas幅を変えて完全に水平にストレッチするにはどうすればよいですか?これは親Canvasなので、親はなく、子だけです。

XAMLソース:ブレンドで表示 http://resopollution.com/xaml.txt

4

5 に答える 5

15

UIの最上位要素としてaを使用Gridします。これは、コンテナを満たすために拡張されます。次に、の中にCanvaswithを入れると、希望どおりに動作します。HorizontalAlignment="Stretch"Grid

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Canvas Background="Blue"/>
</Grid>

それは私のために働いた。重要なのはトップレベルのUI要素です。Gridデフォルトでは、使用可能なすべてのスペースがいっぱいになりますが、esCanvasはコンテンツが要求するスペースしか占有しません。

于 2009-06-03T19:29:51.607 に答える
4

私はあなたが試したと思います
canvas.HorizontalAlignment = HorizontalAlignment.Stretch

これが機能しない場合は、キャンバスのandプロパティを包含ウィンドウのWidthandプロパティにバインドすることができます。HeightActualWidthActualHeight

于 2009-06-03T19:18:42.173 に答える
1

ドックパネルを使用して、使用可能な幅を埋めることができます。コントロールのドックパネルリストの最後の項目は、残りのスペースを埋めるために自動的に引き伸ばされます。

<DockPanel>
   <Canvas />
</DockPanel>
于 2009-06-03T19:12:35.180 に答える
1

高さや幅を手動で設定しない限り、キャンバスはこれを自動的に行う必要があります。キャンバスを配置しようとしているのはどのようなコントロールですか?コードを投稿できますか?

于 2009-06-03T19:16:18.293 に答える
1

問題は、とを指定していることHeightですWidth。これらのプロパティがないと、デザイナではコントロールが消えて見える場合がありますが、キャンバスを別のコントロールに挿入すると、適切なサイズになります。

正しく思い出せば、WPFの次のバージョンには「DesignWidth」プロパティと「DesignHeight」プロパティがあり、他のコントロールに挿入したときに測定に影響を与えることなく、特定のサイズでデザイナーにコントロールを表示できます。

于 2009-06-03T20:05:42.330 に答える