トップ回答者
Anchorに代わるもの。

質問
回答
すべての返信
-
UI仕様によりますが、Canvasに設定してみるとか。
<Canvas Height="209" Margin="122,62,123,41" Name="canvas1" Width="258" VerticalAlignment="Bottom" HorizontalAlignment="Right"> <Button Content="Button45" Height="89" Name="button1" Width="157" Click="button1_Click" Canvas.Top="79" Canvas.Left="75" /> </Canvas>
-
GridではなくCanvasを使う理由があります。
Marginの設定がいまいち直感的でないことです。
オブジェクトを左上端(とかBottomを使えば下端から)配置するのにはCanvasを使うほうがわかりやすいと思うのです。
ですから、Gridを使うことはできません。
う~ん、わからなくもないですが、直感的に関してはMarginの設定もさほど違いがないように思います。基本的にはGridを使う方法に慣れた方が後々のためだと思います。今回はButtonなので良いですが、例えば検索画面を作成し、上4分の1は抽出条件を入力するTextBoxなどがあり、残り4分の3に検索結果を表示するListViewを配置したとします。この状態でWindowの縦の長さを伸ばした時に、検索結果が表示されるListViewのみの高さが伸びた方が自然でしょう。Canvasだけではこのような動作は実現できないはずです。以下に参考ページがありますので、ご紹介しておきます。
[WPFへの道 vol.2] AnchorやDockはどうするの?
http://blogs.msdn.com/b/ttanaka/archive/2010/11/02/wpf-vol-2-anchor-dock.aspx
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
- 編集済み trapemiyaModerator 2011年4月28日 16:41 URL誤り修正
-
trapemiyaさん、コメントありがとうございます。
なるほど。WPFのデフォルトはGridで、おっしゃるようにGridを使うこともできるといいとは思います。ただ、この例を拝読していて、なるほどわたしはWindows的なそういうtextbox+ListViewみたいなウィンドウのアプリケーションを作りたいと思ったことが一度もないし、作ったこともない、とあらためて理解できました。
それはWindows的には自然かもしれないのですが、わたしが作りたいと思っているインターフェースにとっては、不自然窮まるものだからです。
違っていることを自分でも整理できました。ありがとうございました。