在WPF中保持用户控件中的滑块不缩放

本文关键字:缩放 用户 WPF 控件 | 更新日期: 2023-09-27 18:11:44

我有一个用户控件,它包含一个播放视频的媒体元素,一个用作视频跟踪条的滑块和一个显示视频标题的文本块。这3个控件被放置在网格中,网格又被放置在边框内。

我希望用户能够平移,旋转和缩放这个控件。问题是,当控件缩放时,它的内容也缩放,我希望滑块控件不缩放。是否有可能以某种方式保持滑块控件不缩放?

我还应该提到,控件的操作是通过将控件ismanipulationenabled设置为true并使用操作增量事件来处理的。 编辑:

控件的xaml是这样的:

    <Grid Name="movieGrid" ShowGridLines="True">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
            <Border x:Name="moviePlayerBorder" Background="Black" BorderBrush="Blue" BorderThickness="2,2,2,2" CornerRadius="5,5,5,5"  Grid.RowSpan="2">
                <Grid Name="contentGrid">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                <WinControls:MediaElement x:Name="movieDisplay" ScrubbingEnabled="True" IsEnabled="True" Grid.RowSpan="2"
                                      LoadedBehavior="Manual" UnloadedBehavior="Manual" 
                                      MediaOpened="movieDisplay_MediaOpened">
            </WinControls:MediaElement>

        <Image x:Name="btnPlay" Grid.Row="1" Height="60" Width="60" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="120,44,112,43" Grid.RowSpan="2">
                </Image>
                    <DockPanel LastChildFill="True" HorizontalAlignment="Stretch" Margin="6,2,6,0" Grid.Row="0">
                        <TextBlock Text="test" Margin="0,0,0,0" Name="txtBlockTitlu" HorizontalAlignment="Stretch"
                   FontSize="14" VerticalAlignment="Top" Foreground="White" TextWrapping="Wrap" Visibility="Collapsed"/>
                    </DockPanel>
                </Grid>
            </Border>

        <Slider x:Name="seekBar" VerticalAlignment="Bottom" HorizontalAlignment="Center" Width="299"
                         Thumb.DragStarted="seekBar_DragStarted" Thumb.DragCompleted="seekBar_DragCompleted" Thumb.DragDelta="seekBar_DragDelta" MaxHeight="33" 
                         Minimum="0" Maximum="286" Height="33" Margin="0,0,0,0" Grid.Row="1"/>
</Grid>

在WPF中保持用户控件中的滑块不缩放

如果你想构建一个完全可伸缩的用户控件,你应该只定义一个行,列,行,行的大小值。自动,x*或固定值(如果确实需要)。