ControlTemplate
コントロールを含む、WPF で作成されたカスタム コントロールがありますPopup
。
<Popup x:Name="PART_Popup"
PopupAnimation="Fade"
Width="{TemplateBinding Width}"
AllowsTransparency="True"
IsOpen="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsPopupOpen, Mode=OneWay}"
Placement="Bottom"
PlacementTarget="{Binding ElementName=PART_Border}">
カスタム コントロールは、次のコードによって WinForms アプリでホストされます。
var wpfHost = new ElementHost();
wpfHost.Dock = DockStyle.Fill;
wpfHost.Child = new TitleBar();
Controls.Add(wpfHost);
ウィンドウの位置が変わったときにポップアップ自体の位置を変更したい。ここで、ウィンドウ参照を取得して彼のイベントに登録することを提案するいくつかの回答を見ましたLocationChanged
が、winForms ウィンドウでホストされているため、うまくいきません。
どんな提案も役に立ちます:)