我在用于执行查询的 Web 部件中有一个用户控件。用户控件的高度可以增长到某个点,具体取决于有多少结果。这可能导致用户控件的 Header 被推到可视区域之外。
我想获取用户控件的位置,当 Y 坐标为负时移动用户控件,使 Y 坐标为正值。
我正在使用这篇文章中的代码来获取用户控件的位置: 确定 UIElement 的位置
但是现在我有了这个位置,我不知道如何移动用户控件。我尝试使用userControl.SetValue(Canvas.TopProperty, 15.0)
但没有效果。
还有另一种方法可以做到这一点吗?
谢谢你的帮助!
编辑:添加了 XAML 提取
<UserControl x:Class="Gazetteer.Search"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
mc:Ignorable="d"
d:DesignHeight="336" d:DesignWidth="342" BorderBrush="{x:Null}">
<Grid x:Name="LayoutRoot" Background="#FFE2E2E2" MinHeight="80" MinWidth="280">
<StackPanel Margin="10">
<StackPanel Margin="10" Orientation="Horizontal">
<RadioButton x:Name="townlandRB" Margin="5" Checked="radioBtnCheck"
GroupName="Search Type" Content="Townland" />
<RadioButton x:Name="sitecodeRB" Margin="5" Checked="radioBtnCheck"
GroupName="Search Type" Content="Site Code" />
</StackPanel>
</StackPanel>
</Grid>