标签: scrollviewer

WPF - Animate ListBox.ScrollViewer.Horizo​​ntalOffset?

我有一个Visuals 的集合ListBox.我需要找到XPosition里面的一个元素,然后动画HorizontalOffset中的ListBoxScrollViewer.基本上我想创建一个动画ScrollIntoView方法.

这给了我一些问题.首先,我如何获得对ListBoxs scrollviewer 的引用?其次,我怎样才能获得相对XPositionHozintalOfffset任意元素ListBox

我并没有对ListBox自身的任何输入做出反应,因此我无法使用Mouse相关属性.

wpf animation listbox scrollviewer horizontaloffset

13
推荐指数
1
解决办法
2万
查看次数

WPF:网格中的ScrollViewer

我有一个网格:

<Grid.RowDefinitions>
        <RowDefinition Height="100"/>
        <RowDefinition Height="*"/>
</Grid.RowDefinitions>
Run Code Online (Sandbox Code Playgroud)

第二行是scrollviewer:

    <ScrollViewer VerticalScrollBarVisibility="Auto" MinHeight="400" Grid.Row="1">
            <ItemsControl ItemsSource="{Binding SelectedUserControls}"/>
    </ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

如果需要,我希望第二行使用滚动,但滚动是永远不可见的,如果项目控件比屏幕大,则为事件.

如何在需要时显示滚动?

c# wpf grid scrollviewer

13
推荐指数
1
解决办法
3万
查看次数

DataGrid周围的WPF ScrollViewer会影响列宽

我有一个ScrollViewer的问题,我用它来滚动包含数据网格的用户控件.如果没有滚动查看器,列会根据需要填充数据网格,但在添加滚动查看器时,列会缩小到~15px.我能够简化我的布局,仍然可以重现这种行为.

将数据网格宽度绑定到另一个控件时,列具有它们的法线,但这与数据网格上的固定宽度具有相同的效果.我想我不是第一个遇到这个问题的人.如何解决此问题,让我的网格将其大小调整为可用空间并为其列提供一个比例宽度?

使用scrollviewer: 在此输入图像描述 没有: 在此输入图像描述

<Window x:Class="GridTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<Grid MinWidth="200">
    <DataGrid Margin="0" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridCheckBoxColumn Header="Column A" Width="*"/>
            <DataGridCheckBoxColumn Header="Column B" Width="*"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

wpf xaml scrollviewer wpfdatagrid

13
推荐指数
2
解决办法
1万
查看次数

无法在WPF中完全设置ListBox/Scrollviewer的样式

我正在使用我们使用标准ControlTemplates创建的自定义Scrollbars,但是当我将它们应用到ListBox时,右下角有一个角落,我无法找到任何覆盖方式.

不幸的是,在我获得更多分数之前,我无法发布图片.但我所指的角落是当垂直和水平滚动条都出现时,右下方有一个空间,里面充满了灰白色的颜色,我无法消除

wpf listbox scrollbar scrollviewer

12
推荐指数
1
解决办法
3830
查看次数

WPF ScrollViewer:水平滚动不起作用

为什么这不支持水平滚动?

<ScrollViewer>
    <ItemsControl ItemsSource="{Binding Territories}" HorizontalAlignment="Left">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel CanHorizontallyScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Auto" >

                </VirtualizingStackPanel>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Grid >
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="75" />
                        <ColumnDefinition Width="75" />
                        <ColumnDefinition Width="150" />
                        <ColumnDefinition Width="150" />
                        <ColumnDefinition Width="65" />
                        <ColumnDefinition Width="60" />
                        <ColumnDefinition Width="75" />
                        <ColumnDefinition Width="75" />
                    </Grid.ColumnDefinitions>

                    <TextBox Grid.Row="0" Grid.Column="0" Text="{Binding Quantity, StringFormat=N0, ValidatesOnDataErrors=True}" />
                    <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding ProductionNumber, ValidatesOnDataErrors=True}" />

                    <ComboBox Grid.Row="0" Grid.Column="2" SelectedValuePath="PrimaryKey" SelectedValue="{Binding RepKey}" ItemsSource="{Binding RepCanidates}" TextSearch.TextPath="FullName" Margin="4">
                        <ComboBox.ItemTemplate>
                            <DataTemplate>
                                <TextBlock …
Run Code Online (Sandbox Code Playgroud)

wpf scrollviewer

12
推荐指数
1
解决办法
2万
查看次数

如何使WPF ScrollViewer中键单击滚动?

单击鼠标中键(又名:鼠标滚轮),然后稍微向下移动鼠标,用户可以在IE和大多数Windows应用程序中滚动.默认情况下,WPF控件中似乎缺少此行为?有没有设置,解决方法,或者我缺少的明显的东西?

wpf scroll mousewheel scrollviewer

12
推荐指数
1
解决办法
4967
查看次数

WPF图像平移,缩放和在画布上滚动图层

我希望有人可以帮助我.我正在构建一个WPF成像应用程序,它从相机中获取实时图像,允许用户查看图像,然后突出显示该图像上的感兴趣区域(ROI).然后将关于ROI的信息(宽度,高度,相对于图像上的点的位置等)发送回相机,实际上告知/训练相机固件在哪里寻找条形码,文本,液位,转弯等内容在图像上的螺丝等).所需的功能是能够平移和缩放图像及其ROI,以及在图像缩放比观看区域大时滚动.ROI的StrokeThickness和FontSize需要保持原始比例,但ROI内形状的宽度和高度需要与图像一起缩放(这对于捕获传输到相机的精确像素位置至关重要).除了滚动和其他一些问题之外,我已经解决了大部分问题.我关注的两个方面是:

  1. 当我介绍ScrollViewer时,我没有得到任何滚动行为.据我所知,我需要引入一个LayoutTransform来获得正确的ScrollViewer行为.然而,当我这样做时,其他区域开始崩溃(例如,ROI在图像上没有保持正确的位置,或者当平移时鼠标指针开始从图像上的选定点开始蠕动,或者我的图像的左角弹回到MouseDown上的当前鼠标位置.)

  2. 我无法按照我需要的方式扩展投资回报率.我有这个工作,但它并不理想.我所拥有的并没有保留精确的笔划厚度,我没有考虑忽略文本块上的比例.希望你能看到我在代码示例中正在做的事情.

我确定我的问题与我对Transforms及其与WPF布局系统的关系缺乏了解有关.希望展示我迄今为止所取得成就的代码将有所帮助(见下文).

仅供参考,如果Adorners是建议,可能在我的场景中不起作用,因为我最终会得到比支持更多的装饰(谣言144装饰者是事情开始崩溃的时候).

首先,下面是显示带有ROI(文本和形状)的图像的屏幕截图.矩形,椭圆和文本需要按照比例和旋转方式跟随图像上的区域,但不能在厚度或字体大小上进行缩放.

屏幕截图显示样本图像与投资回报率

这是显示上面图像的XAML,以及用于缩放的滑块(鼠标滚轮缩放将在稍后出现)

<Window x:Class="PanZoomStackOverflow.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d"
    Title="MainWindow" Height="768" Width="1024">

<DockPanel>
  <Slider x:Name="_ImageZoomSlider" DockPanel.Dock="Bottom"
          Value="2"
          HorizontalAlignment="Center" Margin="6,0,0,0" 
          Width="143" Minimum=".5" Maximum="20" SmallChange=".1" 
          LargeChange=".2" TickFrequency="2" 
          TickPlacement="BottomRight" Padding="0" Height="23"/>

  <!-- This resides in a user control in my solution -->
  <Grid x:Name="LayoutRoot">
    <ScrollViewer Name="border" HorizontalScrollBarVisibility="Auto" 
                  VerticalScrollBarVisibility="Auto">
      <Grid x:Name="_ImageDisplayGrid">
        <Image x:Name="_DisplayImage" Margin="2" Stretch="None"
               Source="Untitled.bmp"
               RenderTransformOrigin ="0.5,0.5"
               RenderOptions.BitmapScalingMode="NearestNeighbor"
               MouseLeftButtonDown="ImageScrollArea_MouseLeftButtonDown"
               MouseLeftButtonUp="ImageScrollArea_MouseLeftButtonUp"
               MouseMove="ImageScrollArea_MouseMove">                            
           <Image.LayoutTransform>
             <TransformGroup>
               <ScaleTransform />
               <TranslateTransform />
             </TransformGroup>
           </Image.LayoutTransform>
         </Image>
         <AdornerDecorator> <!-- Using this Adorner Decorator for Move, …
Run Code Online (Sandbox Code Playgroud)

wpf scroll zoom scrollviewer pan

12
推荐指数
1
解决办法
2万
查看次数

在WPF框架上设置ScrollViewer(用于垂直滚动)的正确方法?

有没有人知道在框架上定义垂直滚动条之间的区别如下:

        <ScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Auto">
            <Frame Name="Frame1"
                   ScrollViewer.CanContentScroll="True" />
        </ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

或者像这样:

        <ScrollViewer Grid.Row="2">
            <Frame Name="Frame1"
                   ScrollViewer.VerticalScrollBarVisibility="Auto"
                   ScrollViewer.CanContentScroll="True" />
        </ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

此框架嵌套在WebBrowser控件中,并以第一种方式设置它正确显示垂直滚动条,并且仅在需要滚动(自动)时才可见.当我以第二种方式设置垂直滚动条时,即使它不需要滚动(可见)也始终可见.

我将使用第一个选项,因为它符合我的需要,但如果我设置错误,我不想在路上感到惊讶.

谢谢!

wpf scrollbar frame webbrowser-control scrollviewer

12
推荐指数
1
解决办法
5万
查看次数

检测,如果ScrollViewer的ScrollBar可见或不可见

我有一个TreeView.现在,我想检测,如果垂直滚动条是否可见.我试试的时候

var visibility = this.ProjectTree.GetValue(ScrollViewer.VerticalScrollBarVisibilityProperty)
Run Code Online (Sandbox Code Playgroud)

(其中this.ProjectTree是TreeView)我总是获得Auto以获得可见性.

如果ScrollBar有效可见,我该如何检测?

谢谢.

c# wpf scrollviewer

12
推荐指数
1
解决办法
8124
查看次数

如何以编程方式在Scroll viewer中添加网格

我的XAML看起来像这样

<navigation:Page x:Class="SilverlightApplication1.Home">

    <Grid x:Name="LayoutRoot">
    <!--
    <ScrollViewer>
        <Grid>
            <TextBlock Text="myTextBlock" />
        </Grid>
    </ScrollViewer>
    -->
</Grid>
Run Code Online (Sandbox Code Playgroud)

我想以编程方式通过后面的代码执行上面的注释部分.

我的代码背后看起来像这样

public partial class Home : Page
{
    public Home()
    {
        InitializeComponent();

        ScrollViewer sv = new ScrollViewer();
        Grid grid = new Grid();
        TextBlock block = new TextBlock();

        block.Text = "My Text block";
        grid.Children.Add(block);

        sv.ScrollIntoView(grid);
        LayoutRoot.Children.Add(sv);

    }
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为它只显示滚动查看器但隐藏了文本块.

我错过了什么?

有没有办法使用silverlight工具包中提供的扩展方法"ScrollIntoView"以编程方式将子项添加到"ScrollViewer"控件?我没有为ScrollViewer元素找到一个名为"Children"的属性

谢谢您的帮助

silverlight grid xaml scrollviewer

11
推荐指数
1
解决办法
1万
查看次数