如何以编程方式制作与控件关联的 UWP 弹出窗口?
How do I make a UWP Popup associated with a control programatically?
我正在编写的一个行为需要将弹出窗口与控件相关联 - 以便弹出窗口的位置始终相对于该控件。
在 UWP 中,弹出窗口没有放置 属性 可以玩。然后我如何将它与控件相关联? (我知道我可以手动计算位置,但是当您意识到调整 window 的大小不一定会影响控件时,这很快就会变得非常复杂,因此很难知道何时更新位置)
我不能使用浮出控件,因为我需要一个不能被光消除的弹出窗口。
How do I make a UWP Popup associated with a control programatically?
如果你的意思是在后面关联两个控件代码,我认为 ExpressionAnimation
就是你想要的。
可以根据您定义的 Expression
另一个控件计算 Popup
控件视觉对象的属性。仅举个简单的例子,下面的代码片段使 Popup
始终具有 Offset.X
到 50
基于另一个视觉对象的 Offset
.
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);
}
详细计算请根据您的scenarios.More详情自行计算,详情请参考WindowsUIDevLabs。
我正在编写的一个行为需要将弹出窗口与控件相关联 - 以便弹出窗口的位置始终相对于该控件。
在 UWP 中,弹出窗口没有放置 属性 可以玩。然后我如何将它与控件相关联? (我知道我可以手动计算位置,但是当您意识到调整 window 的大小不一定会影响控件时,这很快就会变得非常复杂,因此很难知道何时更新位置)
我不能使用浮出控件,因为我需要一个不能被光消除的弹出窗口。
How do I make a UWP Popup associated with a control programatically?
如果你的意思是在后面关联两个控件代码,我认为 ExpressionAnimation
就是你想要的。
可以根据您定义的 Expression
另一个控件计算 Popup
控件视觉对象的属性。仅举个简单的例子,下面的代码片段使 Popup
始终具有 Offset.X
到 50
基于另一个视觉对象的 Offset
.
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);
}
详细计算请根据您的scenarios.More详情自行计算,详情请参考WindowsUIDevLabs。