C#/WPF Membervariable erstllen und "benutzen"

x1xJanikx1x

Mitglied
Hallo User und Helfer,

ich habe folgendes Problem.

Ich möchte das meine WPF Anwendung bei jedem "Klick" auf einen Button ein kleine Kästchen um 15° dreht. Das es sich dreht habe ich bereits geschafft. Allerdings dreht es sich nur einmal um 15 ° und nicht bei jedem klick.

Mir wurde geraten das ich das über eine Membervariable machen soll:

Code:
 Du musst die Anzahl ° bei jeden Klick um 15 erhöhen. Mache eine Membervariable in deiner Klasse, die anfänglich 0 ist und dann jedes Mal um 15 erhöht wird. Anschliessend erstellst einen RotateTransform mit dieser Rotation.

Nun habe ich leider überhaupt keine Ahnung wie ich das machen. Hier ist einmal mein Programmcode:

Code:
namespace WpfApplication1
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {

        public MainWindow()
        {
            InitializeComponent();
        }


        private void Button_Click(object sender, RoutedEventArgs e)
        {   


            DateTime now = DateTime.Now;
            string currentDate = now.ToLongDateString();
            string currentTime = now.ToLongTimeString();

            TextBox1.Text = currentDate + "   " + currentTime;

                    RotateTransform rotateTransform1 =
                    new RotateTransform(15);
                    Rechteck1.RenderTransform = rotateTransform1;
                    

        }

        private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
        {

            var now = DateTime.Now;
            if ((now.Second % 2) == 0)
            {
                Rechteck1.Fill = System.Windows.Media.Brushes.Red;
            }
            else
            {
                Rechteck1.Fill = System.Windows.Media.Brushes.Blue;
            }
            
        }
    }
}

Hier der Code von XAML:

Code:
 <Window.Background>
        <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
            <GradientStop Color="#FF606079" Offset="0" />
            <GradientStop Color="WhiteSmoke" Offset="1" />
        </LinearGradientBrush>
    </Window.Background>
    <Grid>
        <Button Name="Button1" Click="Button_Click" Margin="121,31,137,235">Aktualisieren</Button>
        <TextBox Name="TextBox1" Height="38" VerticalAlignment="Top" Margin="0,112,0,0" TextChanged="TextBox_TextChanged"></TextBox>
        <Canvas>
            <Rectangle Name="Rechteck1"  Width="120" Height="92" Stroke="Blue" 
             StrokeThickness="1" Fill="#FF0300FA"
             RadiusX="10" RadiusY="30" Canvas.Left="190" Canvas.Top="180" />

        </Canvas>
    </Grid>
</Window>

Wie ihr seht kann das Programm auch noch die Uhrzeit auslesen und wiedergeben aber das ist bei meinem Problem eher zweitrangig.

Ich bedanke mich schon mal für eure Hilfe!

LG
Janik
 
Zurück