我写的一个行为需要将一个弹出窗口与一个控件相关联 - 这样弹出窗口的位置总是相对于该控件。
在UWP中,弹出窗口没有要使用的放置属性。然后我如何将其与控件相关联? (我知道我可以手动计算位置,但是当你意识到调整窗口的大小不会对控件产生不必要的影响时,这会变得非常复杂,因此很难知道何时更新位置)
我不能使用弹出窗口,因为我需要一个不易被忽视的弹出窗口。
答案 0 :(得分:1)
如何以编程方式将UWP Popup与控件关联?
如果你的意思是关联两个控制代码,我认为ExpressionAnimation
就是你想要的。
可以根据您定义的Popup
的另一个控件计算Expression
控件视觉的属性。仅举几个简单的示例,以下代码段使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);
}
详细计算请根据您的情况自行完成。更多详情请参考WindowsUIDevLabs。