1

私は WPF Hud を作成していますが、WPF の専門家ではありません。

ドラッグ可能なユーザーコントロールを備えたウィンドウが必要で、ウィンドウを拡大/縮小すると自動サイズ変更されます。

Canvas コンテナーを使用し、Window の MouseMove イベントを使用することで、最初の機能を実現できます。

2 つ目の機能は、Grid コンテナーを使用して、子の両方のプロパティ Horizo​​ntalAlignment VerticalAlignment を Strech に設定することで実現できます。

もちろん、両方のコンテナーを使用することはできません。そのため、そのような要求を実行するのに役立つ 3 番目のコンテナーはありますか?

実際、キャンバスを使用して、子の幅/高さを手動で決定しようとしていますが、このアプローチは好きではありません。

なにか提案を?

ありがとう、ルカ

4

1 に答える 1

1

コントロールのドラッグなどの詳細を省略して、次のようなことを試してください。

<Window x:Class="AdHocWpf.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="439" Width="616"
    Title="MainWindow">
    <Viewbox>
        <Canvas Width="600" Height="400" Background="Blue">
            <Rectangle Stroke="Orange" Width="200" Height="100" Canvas.Left="10" Canvas.Top="5"/>
            <Ellipse Stroke="Yellow" Width="350" Height="200" Canvas.Left="225" Canvas.Top="150"/>
        </Canvas>
    </Viewbox>
</Window>

これにより、初期サイズが 600x400 の Canvas オブジェクトが作成されます。ウィンドウのサイズを変更すると、キャンバスとその中のオブジェクトが同じ量の相対的なスペースを占めるようにスケーリングされます。含まれているウィンドウのサイズも適切に調整する必要があります...通常のサイズ変更可能なウィンドウには、垂直方向に 39 ピクセル、水平方向に 16 ピクセルのクロムがあるため、それを考慮してください。

于 2012-12-17T16:49:01.380 に答える