[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 03/08 06:53 / Filesize : 123 KB / Number-of Response : 568
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part6



1 名前:デフォルトの名無しさん mailto:sage [2010/05/21(金) 15:27:16 ]
一向に普及しないユーザーインターフェースシステム
Windows Presentation Frameworkについて語るスレ。
.NET4.0もリリースされたけど別に盛り上がってはいないよね…。

Visual Studio 2010
ttp://www.microsoft.com/japan/msdn/vstudio/
Microsoft .NET Framework 4 (Web インストーラー)
www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&displaylang=ja
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&displaylang=ja

関連スレ
Microsoft Silverlight その6
ttp://pc12.2ch.net/test/read.cgi/tech/1271580489/

過去スレ
WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5
pc12.2ch.net/test/read.cgi/tech/1261879110/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
ttp://pc12.2ch.net/test/read.cgi/tech/1245384489/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
ttp://pc12.2ch.net/test/read.cgi/tech/1231506876/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
ttp://pc11.2ch.net/test/read.cgi/tech/1211453941/
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
ttp://pc11.2ch.net/test/read.cgi/tech/1162950198/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
ideone.com/

563 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 14:36:48 ]
WPF勉強中です。
System.Windows.Controls.Controlから派生した複合コントロールの作成を目指しています。XAMLを使用しない条件です。

VisualCollection m_Children;
public コンストラクタ()
{
m_Children = new VisualCollection(this);
m_EditButton = new Button();
m_EditButton.HorizontalAlignment = HorizontalAlignment.Left;
m_EditButton.VerticalAlignment = VerticalAlignment.Top;
m_Children.Add(m_EditButton);
m_ClearButton = new Button();
m_ClearButton.HorizontalAlignment = HorizontalAlignment.Left;
m_ClearButton.VerticalAlignment = VerticalAlignment.Top;
m_Children.Add(m_ClearButton);
}
protected override int VisualChildrenCount
{
get { return m_Children.Count; }
}
protected override Visual GetVisualChild(int index)
{
return m_Children[index];
}

こんなかんじで追加した要素を表示しようとしているのですが、O番目しか表示されません。
位置とサイズ設定コードは別にありますがそれは問題ないです。
Add順序を変えると勿論変えたO番目だけ表示されます。
実装する上で何が足りないのか問題が解決できずに煮詰まっています。

564 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 14:49:08 ]
これは…w

565 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 16:06:00 ]
>>563
MeasureOverride と ArrangeOverride の実装どうなってる?試しに下の様にして実行してみたけど表示されたよ。

public MyControl() {
 _children = new VisualCollection(this) {
   new Button() { Content = "A", Width = 100, Height = 30 },
   new Button() { Content = "B", Width = 100, Height = 30 }
 };
}
protected override int VisualChildrenCount { get { return _children.Count; } }
protected override Visual GetVisualChild(int index) { return _children[index]; }
protected override Size MeasureOverride(Size constraint) { return constraint; }
protected override Size ArrangeOverride(Size arrangeBounds) {
 var rect = new Rect(arrangeBounds);
 foreach (var i in _children) {
  var c = (FrameworkElement)i;
  c.Arrange(rect);
  rect.Y += c.Height;
 }
 return arrangeBounds;
}

あと、Template 使わないのなら Control から直接派生する意味ないので UserControl から派生させれば?
VisaulTree のルートも Panel にしておけば自分で実装する手間は省けるよ。まあ、使えそうな Panel がないなら自分で書くしかないけど。

566 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 16:32:08 ]
>>565
ありがとうございます。2個目以降の表示ができました。
それらの実装も書く必要があったのですね・・・。

567 名前:デフォルトの名無しさん mailto:sage [2010/06/25(金) 16:38:26 ]
洋書でMVVM学ぶのにいい参考書あったら教えてください。







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<123KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef