Frage

Ich habe ein Rechteck in meiner XAML und will seine Canvas.Left Eigenschaft im Code ändern hinter:

<UserControl x:Class="Second90.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300" KeyDown="txt_KeyDown">
    <Canvas>
        <Rectangle 
            Name="theObject" 
            Canvas.Top="20" 
            Canvas.Left="20" 
            Width="10" 
            Height="10" 
            Fill="Gray"/>
    </Canvas>
</UserControl>

Aber das funktioniert nicht:

private void txt_KeyDown(object sender, KeyEventArgs e)
{
    theObject.Canvas.Left = 50;
}

Wer weiß, was die Syntax, dies zu tun ist?

War es hilfreich?

Lösung

Canvas.SetLeft(theObject, 50)

Andere Tipps

Versuchen Sie, diese

theObject.SetValue(Canvas.LeftProperty, 50d);

Es gibt eine Gruppe von Methoden auf DependencyObject (Basis der meisten WPF-Klassen), die den gemeinsamen Zugriff auf alle Abhängigkeitseigenschaften ermöglichen. Sie sind

  • SetValue
  • GetValue
  • Clearvalue

Bearbeiten , um den Satz Aktualisierte ein Doppel wörtlichen zu verwenden, da der Zieltyp ein doppelt so hoch ist.

Als wir die Eigenschaft des ‚Objekts‘ ändern, wäre es besser, Methode zu verwenden suggedte von JaredPar:

theObject.SetValue(Canvas.LeftProperty, 50d);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top