Изменить размер окна с помощью Visual State Manager - PullRequest
0 голосов
/ 11 марта 2010

Я ищу способ изменить размер окна при нажатии кнопки, причина этого в том, что я хочу, чтобы пользователь думал, что окно превращается в другое окно.

Всякий раз, когда я изменяю размер окна в VSM, он просто показывает исключение и трассировку стека, что приводит к куче ошибок, так есть ли способ выполнить то, что я пытаюсь сделать?

Спасибо

1 Ответ

0 голосов
/ 11 марта 2010

если у вас есть blend, попробуйте раскадровку, где вы можете анимировать изменение размера окна. если у вас его нет, вот немного, чтобы вы начали

<Window.Resources>
    <Storyboard x:Key="resizeWindow">
        <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="{x:Null}" Storyboard.TargetProperty="(FrameworkElement.Width)">
            <SplineDoubleKeyFrame KeyTime="00:00:00" Value="577"/>
            <SplineDoubleKeyFrame KeyTime="00:00:03" Value="25"/>
        </DoubleAnimationUsingKeyFrames>
        <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="{x:Null}" Storyboard.TargetProperty="(FrameworkElement.Height)">
            <SplineDoubleKeyFrame KeyTime="00:00:00" Value="469"/>
            <SplineDoubleKeyFrame KeyTime="00:00:03" Value="23.5"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
</Window.Resources>

Это окно идет от его начального значения (577, 469) к конечному значению (25,23.5). Вы можете запустить эту анимацию в любое время, используя это:

Storyboard sStory = (Storyboard)this.Resources["resizeWindow"];
sStory.Begin();

Надеюсь, это поможет

...