2

http://wpfmdi.codeplex.com/ライブラリを使用して、WPF アプリケーションで MDI を処理しています。

子コンテナを含むがCanvasあり、すべての小さなウィンドウがここに配置されます。ウィンドウを x=500、y=500 の位置で開きたい。ただし、現在のコードでは、ウィンドウは常にキャンバスの左上隅で開かれます。

以下に、XAML と、キャンバスに新しいウィンドウを開くコードを貼り付けました。

<Canvas Name="cnvsMain" Background="LightGray" AllowDrop="True" Drop="cnvsMain_Drop">
     <mdi:MdiContainer Name="mainContainer" Background="LightGray">
     </mdi:MdiContainer>
</Canvas>


            TableWindow tableWindow = new TableWindow(tableName);
            listTableWindows.Add(tableWindow);

            mainContainer.Children.Add(new MdiChild()
            {
                MaximizeBox = false,
                MinimizeBox = false,
                Resizable = true,
                ShowIcon = false,
                Title = "X",
                Position = new Point(500,500),
                Content = tableWindow.Content as UIElement //Opens new instance of my window class
            });

何か案は?ウィンドウクラスからも位置を設定しようとしましたが、役に立ちませんでした。

4

1 に答える 1

2

私はその特定のライブラリを扱っていないので、ここで唾を吐くだけですが、代わりに

mainContainer.Children.Add(new MdiChild()
{
    MaximizeBox = false,
    MinimizeBox = false,
    Resizable = true,
    ShowIcon = false,
    Title = "X",
    Position = new Point(500,500),
    Content = tableWindow.Content as UIElement //Opens new instance of my window class
});

やってみました

var child = new MdiChild
{
    MaximizeBox = false,
    MinimizeBox = false,
    Resizable = true,
    ShowIcon = false,
    Title = "X",
    Position = new Point(0, 0),
    Content = tableWindow.Content as UIElement //Opens new instance of my window class
};

mainContainer.Children.Add(child);
child.Position = new Point(500, 500);
//      or
//child.Margin = new Thickness(500, 500, 0, 0);
于 2012-10-19T04:45:00.370 に答える