0

コントロールをドロップしたり、移動したり、サイズを変更したりできるカスタムキャンバスがあります。少なくとも事前に決められたサイズから始めて、サイズを変更できるようにする必要があります。

私の問題は、サイズ変更されていないように見えるユーザーコントロールがあることです。ユーザーコントロールで高さと幅を設定しました(ドロップで機能します)。ただし、キャンバス上でコントロールのサイズが変更されても、視覚的なサイズは同じままです(サイズ変更ハンドルが変更されます)。コントロールのサイズが変更されると、Heightプロパティ(usercontrol.height)が変化するのがわかります。ただし、この場合も、コントロールの外観は同じサイズのままです。

ユーザーコントロールの内部コンテナーはusercontrol.heightにバインドする必要があると思いましたが、それは役に立たなかったようです。(または多分私は結合権を持っていませんでした)。

同じキャンバス上で、ドロップされたコントロールがたとえばImageコントロールである場合、ドロップに明示的な高さを設定すると、すべてのサイズが適切に変更されます。つまり、UserControlのことのようです。

では、ビジュアルのサイズを変更するためにUserControlsで何か特別なことをする必要がありますか?すべてを開始するには、明示的な高さと幅を使用する必要がありますか?

助けてくれてありがとう。

4

2 に答える 2

2

お気づきのように、WPF レイアウト システムは混乱を招く可能性があります。レイアウトと測定システムをしっかりと理解することに代わるものはありません。多くの WPF 開発を計画している場合は、レイアウト システムに関するこの記事を 20 分かけて読んでから、慣れるまでKaxamlなどの反復環境でしばらく実験することをお勧めします。

システムは非常に論理的です。ペニーが落ちるのにそれほど時間はかかりません。間接的な回答で申し訳ありませんが、何が起こっているのかを本当に説明するのに十分な情報があなたの質問にあるとは思いません.

HorizontalAlignmentおよびVerticalAlignmentプロパティも確認できます。

于 2009-02-26T09:36:50.557 に答える
0

WPF の専門家ではありませんが、探しているシナリオを実現するには、自動サイズ変更を有効にする必要があると思います。これは、コントロールの Height/Width を Double.NaN に設定することによって行われます。これは、基本的に「特定のサイズはありません」という意味です。これを行うと、コントロールの必要性に基づいて、使用可能なスペースを占有するようにコントロールのサイズが変更されます。

于 2009-02-26T03:18:29.517 に答える