Как улучшить рендеринг пользовательского интерфейса в WPF - PullRequest
0 голосов
/ 28 июня 2019

Я использую ресурс изображения для логотипа и фона программы. Когда моя страница приложения изменила время, пользовательский интерфейс не является гладким.

Я использовал BitmapCache CacheMode, но пользовательский интерфейс не является гладким.

    <Storyboard x:Key="SlideLeft" Completed="SlideLeft_Completed" FillBehavior="Stop" 
                Duration="0:0:1">
        <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TranslateTransform.X)" 
                         From="0" 
                         Duration="0:0:1"
                         To="{Binding RelativeSource={RelativeSource FindAncestor, 
                            AncestorType=UserControl, AncestorLevel=1}, 
                            Converter={StaticResource invertDoubleConverter}, Path=ActualWidth}" />
        <DoubleAnimation Storyboard.TargetProperty="(RenderTransform).(TranslateTransform.X)" 
                         Duration="0:0:1"
                         From="{Binding RelativeSource={RelativeSource FindAncestor, 
                         AncestorType=UserControl, AncestorLevel=1}, Path=ActualWidth}" To="0"  />
    </Storyboard>

Приведенный выше код является простым кодом перехода страницы. https://www.codeproject.com/Articles/1151795/WPF-Transition-of-User-Control

Ниже приведен код моего файла xaml.

<Grid Style="{DynamicResource BaseGrid}">
    <Grid.Resources>
        <BooleanToVisibilityConverter x:Key="visibilityConverter"/>
    </Grid.Resources>
    <Grid.RowDefinitions>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="5*"/>
        <RowDefinition Height="1*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="2*"/>
        <ColumnDefinition Width="1*"/>
    </Grid.ColumnDefinitions>
    <Grid Grid.Column="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="0.4*"/>
            <ColumnDefinition Width="0.6*"/>
        </Grid.ColumnDefinitions>
        <Image Margin="20"
           Grid.Column="1"
           Stretch="Fill">
            <Image.Source>
                <BitmapImage UriSource="{Binding Logo.MediaPath, Source={x:Static settings:ProgramSettings.Instance}}"/>
            </Image.Source>
        </Image>
    </Grid>
    <MediaElement Name="myMediaElement" Margin="20"
                  Source="{Binding CurrentAd, TargetNullValue={x:Null}, FallbackValue={x:Null}, IsAsync=True}"  
                  Grid.Row="1" Grid.Column="0"
                  MediaEnded="MyMediaElement_MediaEnded" 
                  LoadedBehavior="Play"  
                  Stretch="Fill">
    </MediaElement>

Как сделать плавную анимацию пользовательского интерфейса.

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