17

初めての WPF アプリケーションを作成しています。フォームが最大化または全画面表示されると、コントロールのサイズが変更されず、同じ場所にとどまるという問題があります。フォームのみが最大化されます。

winform では、次のように .cs で調整を行うことができます。

panel6.Width
panel6.Height
panel6.Location

これは、フォームが最大化されている場合に設定するのに役立ちます。画面の解像度と計算を取得して値を取得し、幅、高さ、位置に設定できる算術演算を使用してそれを行います。しかし、これはWINFORMです。

WPF で最大化されたフルスクリーンでこの問題に取り組むにはどうすればよいですか? プログラムで .cs ファイルを使用する方法はありますか? または、WPF には、この問題に取り組むための簡単な組み込みコントロールが付属していますか?

この例では、WPF でドックパネルを使用しているとします。

ウィンドウが最大化されていても、他のコントロールが残っていると意味がありません。

4

6 に答える 6

32

さを設定するには:

dockpanel1.width = 230;
dockpanel1.height = 230;

場所については、 Marginwpfを使用します。

dockpanel1.Margin = new Thickness(0,440,836,40);
于 2011-05-11T08:01:58.623 に答える
15

Canvas 上の子要素をプログラムで移動することができます。

xaml で:

<Canvas>
    <YourElement Canvas.Top="x" Canvas.Left="y"/>
</Canvas>

C# の場合:

Canvas.SetTop(YourElement, newX);
Canvas.SetLeft(YourElement, newY);
于 2013-12-16T21:42:41.023 に答える
2

(コントロールの以前の位置 * レイアウトの新しいサイズ) / レイアウトの以前のサイズ = コントロールの新しい位置のような計算を使用します。

しかし、最も簡単な方法は、XAML を使用してグリッドを使用し、そこに列と行を配置し、列と行のサイズを * に設定することですそれ。また、コントロールの余白を列と行に設定するだけで、自動サイズ変更可能なコントロールを作成することもできます。ストレッチに設定された水平方向と垂直方向の配置を忘れないでください。

于 2014-07-21T21:45:10.227 に答える
1

特定の問題については、DockPanelを使用してコントロールを配置することをお勧めします。これが最初の bing の結果です: WPF チュートリアル | ドックパネル

そして、flqとblindmeisによってすでに提案されているように、レイアウトパネルを調べてください. これにより、WPF での作業が非常に簡単になります。

于 2011-05-10T08:59:04.343 に答える
0

子アイテムを明示的に配置する場合は、キャンバス パネルを使用します

<Canvas>
    <YourElement Canvas.Top="x" Canvas.Left="y"/>
</Canvas>
于 2011-06-10T19:25:12.140 に答える
0

wpf のさまざまなレイアウトパネル (Grid、DockPanel、StackPanel、Canvas ...) をすべて確認する必要があります。

そのため、パネルのプロパティを設定すると、LayoutPanel が変更されると動作が異なります。

于 2011-05-10T08:58:28.870 に答える