2016-12-25 5 views
-2

まず、この不満な質問には申し訳ありません。しかし、私はWPFを自分で学習しています。 今、Panelクラスについて学んでいます。これを学ぶには、私はこのMSDNウェブページを見ています。 MSDNがコードを使用してPanelを作成する方法については、私には多くの魅力があります。インスタンスWPFで次のように達成するには

// Create the application's main window 
mainWindow = new Window(); 
mainWindow.Title = "Canvas Sample"; 

// Create the Canvas 
myParentCanvas = new Canvas(); 
myParentCanvas.Width = 400; 
myParentCanvas.Height = 400; 

// Define child Canvas elements 
myCanvas1 = new Canvas(); 
myCanvas1.Background = Brushes.Red; 
Canvas.SetLeft(myCanvas1, 0); 
. 
. 
. 
myParentCanvas.Children.Add(myCanvas3); 

// Add the parent Canvas as the Content of the Window Object 
mainWindow.Content = myParentCanvas; 
mainWindow.Show(); 

のために私はページに示すように、Panel(レイアウト)を作成したいが、私は(コピー&ペースト)このコードを書くべきところ私は混乱しています。私たちは、私がMainWindowメソッド内のコードのこの(MSDNの)ラインを入れてみましたが、それは非常に私を助けていなかったコード

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 

    } 
} 

の次の行を持っているfilename.xaml.csXAML

を使用してLayoutを作成するだけでなく精通しています。私の知識によれば、mainWindowContent()のような方法が必要です。これはInitializeComponent()またはこれに似たものでなければなりません(これは間違いかもしれません)。

これを達成する正しい方法を教えてください。

+0

クラスを呼び出すことができます起動時に

そしては、[MCVE]あなたはXAMLと、おそらくコードと同等に何をしたいのは、提供することができます表示します。 – Nkosi

+1

表示されている記事の例は、開始時にコメントに基づいて行われた可能性が最も高いです。あなたが既にメインウィンドウを持っているなら、 'InitializeComponents'の後にMainWindowコンストラクタのすべてを行うことができます – Nkosi

+0

SOは言語ではありません_API_変換サービス – MickyD

答えて

1
public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     this.Title = "Canvas Sample"; 

     // Create the Canvas 
     var myParentCanvas = new Canvas(); 
     myParentCanvas.Width = 400; 
     myParentCanvas.Height = 400; 

     // Define child Canvas elements 
     var myCanvas1 = new Canvas(); 
     myCanvas1.Background = Brushes.Red; 
     myCanvas1.Height = 100; 
     myCanvas1.Width = 100; 
     Canvas.SetTop(myCanvas1, 0); 
     Canvas.SetLeft(myCanvas1, 0); 

     var myCanvas2 = new Canvas(); 
     myCanvas2.Background = Brushes.Green; 
     myCanvas2.Height = 100; 
     myCanvas2.Width = 100; 
     Canvas.SetTop(myCanvas2, 100); 
     Canvas.SetLeft(myCanvas2, 100); 

     var myCanvas3 = new Canvas(); 
     myCanvas3.Background = Brushes.Blue; 
     myCanvas3.Height = 100; 
     myCanvas3.Width = 100; 
     Canvas.SetTop(myCanvas3, 50); 
     Canvas.SetLeft(myCanvas3, 50); 

     // Add child elements to the Canvas' Children collection 
     myParentCanvas.Children.Add(myCanvas1); 
     myParentCanvas.Children.Add(myCanvas2); 
     myParentCanvas.Children.Add(myCanvas3); 

     // Add the parent Canvas as the Content of the Window Object 
     this.Content = myParentCanvas; 
    } 
} 

MainWindowコードビハインド自体の中で行わ場合

<Window Title="Canvas Sample" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> 
    <Canvas Height="400" Width="400"> 
    <Canvas Height="100" Width="100" Top="0" Left="0" Background="Red"/> 
    <Canvas Height="100" Width="100" Top="100" Left="100" Background="Green"/> 
    <Canvas Height="100" Width="100" Top="50" Left="50" Background="Blue"/> 
    </Canvas> 
</Window> 

と等価です。

あなただけ
// Create the application's main window 
var mainWindow = new MainWindow(); 
mainWindow.Show(); 
+0

ガイダンスのためにありがとう。さて、これを行う必要はないのですか(なぜ、 'type objectName = new type()')?このコードを 'type objName ... pe();と修正する必要がありました。 ! –

+1

'Visual C#3.0以降、メソッドスコープで宣言された変数は、暗黙の型var.'を持つことができます。https://msdn.microsoft.com/en-us/library/bb383973.aspx – Nkosi

+0

var keyword私はMSDNのサンプルコードの文脈でそれを求めていました。** MSDNは、すべての開発者が行ってきた正しいコードとして書くべきではありません**。 –

関連する問題