XAML - получить позицию пользовательского элемента управления относительно всего окна как свойство привязки

Я новичок в XAML, поэтому учтите, что в моем вопросе может содержаться некоторое недоразумение.

Можно ли привязать глобальную (относительно окна) позицию XAML usercontrol, чтобы проверить, видна ли она в данный момент на экране? Usercontrol вставляется внутри ScrollViewer, и я думаю о чем-то вроде:

  <UserControl x:Class="Test.MessageControl"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Width="300">
      <StackPanel >
          <Label Name="LabelTest" 
          Content="{Binding RelativeSource={RelativeSource Self}, 
          Path=MAGIC-GOES-HERE-Location.Y }" />
      </StackPanel>
   </UserControl>

Ответы на вопрос(1)

Решение Вопроса

получить "местоположение" невозможно ваших элементов управления в XAML (не так, как мы привыкли, по крайней мере). В WPF элементы управления не имеют «местоположения». свойства больше. Элементы управления и элементы экрана имеют только свойства ширины и высоты, которые не помогут вам определить, где они находятся в окне.

BUT: Если вам действительно нужно знать, где что-то, выCAN выяснить это, используя свойства родительского элемента управления. (Microsoft сделала так, что это единственный надежный способ сделать это больше.)

Example:
Если у вас есть сетка из двух строк, а ваш UserControl находится во второй строке - вы можете обработать свойство ActualHeight первой строки так, как если бы оно было & quot; Location.Y & quot; свойство вашего UserControl, вместо того, чтобы искать сам элемент управления, чтобы предоставить вам его местоположение.

Это то, к чему вам придется привыкнуть, поскольку больше нет способа обойти это.

Рассмотрите возможность использования<Grid> элемент где-то в вашем дизайне. Он предоставляет информацию о расположении ваших элементов управления очень простым способом. Он работает как более умная версия динамически изменяемой таблицы HTML. Вы можете получить свойства ActualWidth и ActualHeight для любой строки или столбца или даже для всей сетки, если хотите.

Ваш ответ на вопрос