it4baer

CSharp WPF Resize Window "Smooth" on MouseLeave

Hallo,

ich würde gerne das Fenster etwas verkleinern, wenn ich mit der Maus dies verlasse.
Genau gesagt, nach einer Verzögerung von 5 Sekunden...

kann ich dies direkt in WPF umsetzen?

mit einem Rechteck bekomm ich das leicht hin:
<Rectangle Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="50" Margin="0,50,0,0" VerticalAlignment="Top" Width="50">  
	<Rectangle.Triggers>
		<EventTrigger RoutedEvent="UserControl.MouseEnter">  
			<BeginStoryboard>
				<Storyboard>
					<DoubleAnimation Storyboard.TargetName="WpfWin"  
					Storyboard.TargetProperty="Width"  
					To="500" Duration="0:0:0.1" AutoReverse="False"  
					RepeatBehavior="1x" />  
				</Storyboard>
			</BeginStoryboard>
		</EventTrigger>
		<!-- 
		<EventTrigger RoutedEvent="UserControl.MouseLeave" >  
			<BeginStoryboard>
				<Storyboard BeginTime="0:0:1.5" >  
					<DoubleAnimation Storyboard.TargetName="WpfWin"  
					Storyboard.TargetProperty="Width"  
					To="50" Duration="0:0:0.1" AutoReverse="False"    
					RepeatBehavior="1x" />  
				</Storyboard>
			</BeginStoryboard>
		</EventTrigger>
		-->
	</Rectangle.Triggers>
</Rectangle>

wenn ich allerdings das ganze versuche in den Window-Ressourcen einzupflegen, beschwert er sich, dass ich kein Target im Style verwenden darf...

    <Window.Resources>
        <Style>
            <Style.Triggers>
                <EventTrigger RoutedEvent="UserControl.MouseLeave" >  
                    <BeginStoryboard>
                        <Storyboard BeginTime="0:0:1.5" >  
                            <DoubleAnimation Storyboard.TargetName="WpfWin"  
                            Storyboard.TargetProperty="Width"  
                            To="50" Duration="0:0:0.1" AutoReverse="False"    
                            RepeatBehavior="1x" />  
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>

hat da jemand eine Idee wie ich es angehe, letztendlich soll ein Timer loslaufen, sobald ich mit der Maus das Fenster verlasse, Wird nicht ein anderes Fenster-Event aufgerufen (z.B. maximiere das Fenster), soll nach kurzer Zeit das Fenster wieder klein geschoben werden...

Vielen Dank für jeden Tipp
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 364113

Url: https://administrator.de/forum/csharp-wpf-resize-window-smooth-on-mouseleave-364113.html

Ausgedruckt am: 06.07.2025 um 07:07 Uhr

135333
135333 08.02.2018 um 15:11:33 Uhr