- 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学ぶのにいい参考書あったら教えてください。
|

|