簡體   English   中英

如何以編程方式使UWP Popup與控件關聯?

[英]How do I make a UWP Popup associated with a control programatically?

我正在編寫的行為需要將彈出窗口與控件關聯-以便彈出窗口的位置始終相對於該控件。

在UWP中,彈出窗口沒有可用於放置的屬性。 然后如何將其與控件關聯? (我知道我可以手動計算位置,但是當您意識到調整窗口的大小並不一定會影響控件時,這將變得非常復雜,因此很難知道何時更新位置。)

我無法使用彈出按鈕,因為我需要一個不能輕放的彈出窗口。

如何以編程方式使UWP Popup與控件關聯?

如果要在后面關聯兩個控件代碼,我認為ExpressionAnimation是您想要的。

可以基於您定義的Expression另一個控件來計算Popup控件視覺效果的屬性。 Offset.X一個簡單的例子,下面的代碼片段使Popup始終將Offset.X為基於另一個視覺效果的Offset 50

private void btnmain_Click(object sender, RoutedEventArgs e)
{
    _visualA.Offset = new System.Numerics.Vector3(400, 350, 350);
}

private void btntest_Click(object sender, RoutedEventArgs e)
{
    _visualA = ElementCompositionPreview.GetElementVisual(btnmain);
    _visualB = ElementCompositionPreview.GetElementVisual(pop); 
    compositor = _visualB.Compositor; 
    var expression = compositor.CreateExpressionAnimation("visualA.Offset.X + 50");
    expression.SetReferenceParameter("visualA", _visualA);
    _visualB.StartAnimation("Offset.X", expression);
}

有關詳細計算,請根據您自己的情況自行進行 。更多詳細信息,請參考WindowsUIDevLabs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM