C# 相对控制位置改变时如何控制弹出控制显示位置
我正在使用弹出控件显示验证错误消息。我正在使用“PlacementTarget”属性基于父控件设置弹出控件位置。它在大多数情况下工作正常。(截图1)但若我将窗口移到右侧,那个么在并没有足够空间完全显示弹出控件的地方,它只会移动到某个随机位置。(截图-2) 我的问题是,当没有太多空间(通过获取事件或使其不可见)或以某种方式收到位置将要更改的通知时,我是否可以控制弹出控件的位置 XAML->C# 相对控制位置改变时如何控制弹出控制显示位置,c#,.net,wpf,C#,.net,Wpf,我正在使用弹出控件显示验证错误消息。我正在使用“PlacementTarget”属性基于父控件设置弹出控件位置。它在大多数情况下工作正常。(截图1)但若我将窗口移到右侧,那个么在并没有足够空间完全显示弹出控件的地方,它只会移动到某个随机位置。(截图-2) 我的问题是,当没有太多空间(通过获取事件或使其不可见)或以某种方式收到位置将要更改的通知时,我是否可以控制弹出控件的位置 XAML-> <Popup x:Name="ErrorPopup " PlacementTarget="{Bi
<Popup x:Name="ErrorPopup "
PlacementTarget="{Binding ElementName=Part_TextBlock}"
Placement="Right"
HorizontalOffset="{TemplateBinding ErrorHorizontalOffset}"
StaysOpen="True"
VerticalOffset="{TemplateBinding ErrorVerticalOffset}">
void Owner_LocationChanged(object sender, EventArgs e)
{
if (ErrorPopup == null)
return;
if (ErrorPopup.IsOpen)
{
var offset = ErrorPopup.HorizontalOffset;
ErrorPopup.HorizontalOffset = offset + 1;
ErrorPopup.HorizontalOffset = offset;
}
}