c# - 防止用户控件中的 slider 在 WPF 中缩放

标签 c# wpf touch scaling

我有一个用户控件,其中包含一个用于播放视频的媒体元素、一个用作视频轨迹栏的 slider 和一个显示视频标题的文本 block 。这 3 个控件放置在一个网格中,而该网格又放置在一个边框内。

我希望用户能够平移、旋转和缩放此控件。问题是,当控件缩放时,它的内容也会缩放,而我希望 slider 控件不缩放。是否有可能以某种方式阻止 slider 控件缩放?

我还应该提到,控件的操作是通过将控件 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>

最佳答案

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

不要在元素上使用固定大小的值。

关于c# - 防止用户控件中的 slider 在 WPF 中缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7818323/

相关文章:

c# - 访问 WP7 联系人

c# - DispatcherTimer的 'IsEnabled'和 'Start/Stop'有什么区别?

c# - CefSharp.BrowserSubprocess 错误

android - 如何在屏幕上产生虚拟触摸?

c# - backgroundWorker 的目的是什么? (我可以得到一些示例代码来理解吗?)

c# - 将 IP 转换为二进制并转换回字符串

c# - linq中IN运算符的使用方法

c# - WPF Datagrid 列格式编号以包含逗号

android - 捕获android列表项中的触摸事件并防止滚动

c# - 当我有触摸事件处理程序时,为什么我的鼠标事件处理程序不工作?