2009-06-29 4 views
1

Ich bin neu bei XAML, also bitte beachten Sie, dass meine Frage ein Thema enthalten kann, das missverständlich ist.XAML - Benutzersteuerposition relativ zum gesamten Fenster als Bindungseigenschaft abrufen

Ist es möglich, XAML usercontrol globale (relativ zum Fenster) Position zu binden, um zu überprüfen, ob es derzeit auf dem Bildschirm sichtbar ist? Usercontrol innerhalb Scroll eingefügt und ich denke an so etwas wie:

<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> 

Antwort

2

Nein, es nicht möglich ist, die „Lage“ der Steuerelemente in XAML zu bekommen (nicht direkt, wie wir es gewohnt sind, zumindest). In WPF haben Steuerelemente keine "Standort" -Eigenschaften mehr. Steuerelemente und Bildschirmelemente haben nur Eigenschaften für die Breite und Höhe, die Ihnen nicht helfen, den Ort im Fenster zu finden.

ABER: Wenn Sie wirklich wissen müssen, wo etwas ist, Sie CAN es herauszufinden Eigenschaften der Stammsteuerung. (Microsoft hat es geschafft, so dass dies die einzige zuverlässige Möglichkeit mehr, dies zu tun.)

Beispiel:
Wenn Sie ein Gitter mit zwei Reihen, und Ihr Usercontrol ist in der zweiten Reihe - Sie kann die ActualHeight -Eigenschaft der ersten Zeile wie die "Location.Y" -Eigenschaft Ihres Benutzersteuerelements behandeln, anstatt auf das Steuerelement selbst zu schauen, um Ihnen seinen Speicherort anzugeben.

Das ist etwas, an das man sich gewöhnen muss, da es keinen Weg mehr gibt, um es zu umgehen. Verwenden Sie das <Grid> Element irgendwo in Ihrem Design. Es bietet Informationen über den Standort Ihrer Steuerelemente in einer sehr direkten Art und Weise. Es funktioniert wie eine intelligentere Version einer dynamisch skalierenden HTML-Tabelle. Sie können die ActualWidth- und ActualHeight-Eigenschaften einer beliebigen Zeile oder Spalte oder sogar des gesamten Rasters selbst abrufen, wenn Sie möchten.

Verwandte Themen