Laden...

Wie kann ich auf die Properties in einer WPF-Datei zugreifen?

Erstellt von triceps vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.092 Views
T
triceps Themenstarter:in
6 Beiträge seit 2020
vor 4 Jahren
Wie kann ich auf die Properties in einer WPF-Datei zugreifen?

Hi Leute, ich hoffe ich befinde mich hier im richtigen Teil dieser Webseite!
Folgendes Problem hat sich für mich ergeben:

Ich wollte eine einfaches WPF Programm in VisualStudio erstellen.
Bestandteile sollten sein:
Ein Slider, eine TextBox und ein Button. Diese wurden über XAML-Code bereits eingefügt.
Weiterhin wurde die TextBox über ein Binding mit dem Slider verbunden.

Kommen wir zum eigentlichen Problem:
Will ich auf die ActualWidth des Sliders zugreifen, lässt Visual Studio das nicht zu.
Anscheinend fehlen mir die Properties....
Mein Problem an dieser Stelle ist, dass ich nicht weiss wie ich diese im XAML-Code einfüge.

  <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>

        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>


        </Grid.RowDefinitions>
        
            <Slider  x:Name="Slider1" Grid.Row="0" Width="500" Margin="50" Maximum="200"
                    
                     /> <!-- Anweisung die den Sliderzugriff in anderer Klasse ermöglicht -->
            <TextBox   Grid.Row="1" Width="500" Margin="50" Height="50"
                       Text="{Binding ElementName=Slider1, Path=Value}"
                       TextAlignment="Center" FontSize="30"/>
            <Button Grid.Row="2" Width="200" Height="50" Content="Testen"
                    />

    </Grid>
</Window>

Hier mein XAML-Code.....
Ich gehe stark davon aus, dass an dieser Stelle gewisse Anpassungen vorgenommen werden müssen

Hier nun der Code meiner WPF.cs Datei in der ich auf den Slider zugreifen möchte.

namespace WpfAppÜbung
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        Skala skala;

        public MainWindow()
        {
            InitializeComponent();
            skala = new Skala(Slider1.ActualWidth);

            skala.OnScale += Fehlermeldung;
            skala.OnScale +=  Korrektur;
        }

        public void testen()
        {
            skala.pruefen();
        }
        public void Fehlermeldung()
        {
            MessageBox.Show("Fehler!");
        }
        public void Korrektur()
        {
            skala.Xpos = 0;
            aktualisieren();
        }

        public void aktualisieren()
        {
            Slider1.ActualWidth = skala.Xpos; //Hier möchte ich auf den Slider zugreifen

        }
    }
        
}

An der besagten Stelle verstehe ich nun nicht was ich falsch mache... Ist meine Zugriffssyntax inkorrekt? Was brauche ich damit der Zugriff funktioniert?

Ich hoffe die Frage ist nicht allzu dumm oder im falschen Bereich dieses Forums.

LG Triceps

16.806 Beiträge seit 2008
vor 4 Jahren

Hallo.

Bitte halte Dich an [Hinweis] Wie poste ich richtig? und verwende Code Tags.
Niemand hat Lust auf Plaintext 😃

Danke.

J
251 Beiträge seit 2012
vor 4 Jahren

Hast Du mal in die Doku nachgeschlagen von Slider mit seiner geerbeten Property ActualWidth?

Btw. ein kleiner WPF-Tipp: [Artikel] MVVM und DataBinding

1.040 Beiträge seit 2007
vor 4 Jahren

Es ist nicht möglich, die ActualWidth zu setzen. Man kann den Wert nur auslesen.

Kannst du mal erklären, was du überhaupt machen möchtest?