it4baer
Goto Top

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

Content-Key: 364113

Url: https://administrator.de/contentid/364113

Ausgedruckt am: 29.03.2024 um 11:03 Uhr

Mitglied: 135333
135333 08.02.2018 um 15:11:33 Uhr
Goto Top