2

現在、透明効果に依存する Winforms アプリがあります。しかし、これは前の背後にある絶対的な苦痛であることが証明されています! Winforms as Im learning は、透明性を特にうまく処理しません。

透明性ビットに WPF コンポーネントを使用し、残りに winforms を使用すると、これが簡単になるかどうか疑問に思っていました (アプリ全体を WPF に移行したいのですが、これは実現可能ではありません!)。私はWPFについてほとんど何も知らないので、私がここにいる理由です! 私が考えていたのは:

1) Winforms ユーザー コントロール内で WPF コンポーネントをホストします。例: WPF コントロールの例:

<UserControl x:Class="WindowsFormsApplication1.UserControl1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="300" Width="300">
    <Grid>
         <Rectangle Name="rectangle1" Stroke="White" Fill="Black" RadiusX="10" RadiusY="10" Opacity="0.7" />
        <Rectangle Margin="57,101,43,99" Name="dialog" Stroke="Gray" Fill="White" RadiusX="10" RadiusY="10" />
    </Grid>
</UserControl>

2) WPF コントロールの白い四角形 (ダイアログ) 内で Winforms ユーザー コントロール (コンテンツ) をホストします。3) コンテンツ (Winforms ユーザー コントロール) が WPF コントロールの親でコードを呼び出せるようにします。

まず最初に...

  • これは合理的なことですか、それとも間違ったツリーを吠えていますか?
  • これは簡単な方法で達成できますか?
  • 誰でもここで私を助けることができますか? (サンプルコードをいただければ幸いです!)
  • 最後に ... a) WPF を学び、b) より自給自足になるのに役立つオンライン リソースはありますか?
4

2 に答える 2

4

それは確かに可能であり、透明性を扱う最も簡単な方法であるというあなたの意見は正しいと思います。

私は自分で試したことはありませんが、 CodeProject に関するこの記事によると、非常に簡単なはずです。WPF コンテンツをホストするには、 ElementHost コントロールを使用する必要があります。

WinForms コントロールで WPF をホストすることは、サポートされているシナリオであり、フレームワークに組み込まれた機能です。したがって、そうすることで問題はないはずです。逆に、WPF アプリで WinForms をホストするための WPF コンポーネントもあります。

于 2009-06-01T18:44:46.490 に答える