Tag: scrollviewer

我怎样才能得到我的列表框中的垂直滚动条?

在下面的例子中,我有一个列表框,其中有几十个字体名称。 我会认为它会自动有一个垂直滚动条,以便您可以select任何字体,不只是在列表中的第一个,但它没有。 所以我添加了一个“ScrollViewer”,并在右侧放置了一个“滚动条区域”,但是在滚动条区域没有滚动条,因此您可以滚动(!)。 为什么不是一个滚动条自动,我怎么强制它有一个滚动条? <StackPanel Name="stack1"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="2*"></RowDefinition> <RowDefinition Height="*"></RowDefinition> </Grid.RowDefinitions> <ScrollViewer> <ListBox Grid.Row="0" Name="lstFonts" Margin="3" ItemsSource="{x:Static Fonts.SystemFontFamilies}"/> </ScrollViewer> </Grid> </StackPanel>

WPF:ItemsControl与滚动条(ScrollViewer)

我遵循这个关于如何向ItemsControl添加滚动条的小教程,它在Designer视图中工作,但不是当我编译和执行程序时(只有前几个项目出现,没有滚动条查看更多 – 甚至当VerticalScrollbarVisibility设置为“可见”而不是“自动”)。 任何想法如何解决这个问题? 这是我用来显示我的项目的代码(通常我使用Databinding,但要查看我的devise器中的项目,我手动添加它们): <ItemsControl x:Name="itemCtrl" Style="{DynamicResource UsersControlStyle}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Top"> </StackPanel> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <uc:UcSpeler /> <uc:UcSpeler /> <uc:UcSpeler /> <uc:UcSpeler /> <uc:UcSpeler /> </ItemsControl> 这是我的模板: <Style x:Key="UsersControlStyle" TargetType="{x:Type ItemsControl}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ItemsControl}"> <Border SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"> <ScrollViewer VerticalScrollBarVisibility="Visible"> <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> […]

为什么将ScrollViewer.CanContentScroll设置为false会禁用虚拟化

正如大多数WPF开发人员所知,将ScrollViewer.CanContentScroll设置为false将禁用虚拟化; 但我想知道它是如何工作的,因为我尝试启用虚拟化,同时将ScrollViewer.CanContentScroll设置为false 。

我怎样才能让ScrollViewer在StackPanel中工作?

在下面的WPF XAML ScrollViewer不起作用(它显示一个滚动条,但你不能滚动和内容离开窗口底部)。 我可以改变外面的StackPanel到一个网格,它会工作。 但是,在我的应用程序中,我重现了以下代码,我需要一个外部的StackPanel。 我该怎么做的StackPanel使ScrollViewer显示一个可用的滚动条? 例如VerticalAlignment =“Stretch”Height =“Auto”不起作用。 <StackPanel> <ScrollViewer> <StackPanel> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is a test"/> <TextBlock Text="This is […]

WPF:如何使canvas自动resize?

我想我的Canvas自动调整其大小的项目,以便ScrollViewer查看器滚动条具有正确的范围。 这可以在XAML中完成吗? <ScrollViewer HorizontalScrollBarVisibility="Auto" x:Name="_scrollViewer"> <Grid x:Name ="_canvasGrid" Background="Yellow"> <Canvas x:Name="_canvas" HorizontalAlignment="Left" VerticalAlignment="Top" Background="Green"></Canvas> <Line IsHitTestVisible="False" …/> </Grid> </ScrollViewer> 在上面的代码中,canvas总是具有0的大小,尽pipe它不剪切它的子元素。

WPF图像平移,缩放和滚animation布上的图层

我希望有人能帮助我。 我正在构build一个WPF成像应用程序,该应用程序从摄像头获取实时图像,以便用户查看图像,然后突出显示该图像上的感兴趣区域(ROI)。 关于ROI(宽度,高度,相对于图像上的点的位置等等)的信息然后被发送回相机,实际上是告诉/训练相机固件在哪里寻找诸如条形码,文本,液位,转弯在图像上的螺丝等)。 所需的function是能够平移和缩放图像及其ROI,以及在图像缩放比查看区域大时滚动。 ROI的StrokeThickness和FontSize需要保持原始比例,但是ROI中的形状的宽度和高度需要随图像一起缩放(这对捕获传输到相机的精确像素位置至关重要)。 除了滚动和其他一些问题之外,我已经完成了大部分工作。 我关心的两个方面是: 当我介绍一个ScrollViewer我没有得到任何滚动的行为。 据我了解,我需要引入一个LayoutTransform来获得正确的ScrollViewer行为。 但是当我这样做时,其他区域开始分解(例如ROI在图像上不能保持其正确的位置,或者在平移时鼠标指针开始从图像上的选定点开始蠕动,或者图像的左angular弹跳到MouseDown上的当前鼠标位置。) 我不能像我所需要的那样得到我的投资回报率。 我有这个工作,但它不理想。 我有什么不保留确切的中风厚度,我没有看到在文本块忽略规模。 希望你能看到我在代码示例中做了什么。 我相信我的问题与我对变换缺乏理解以及它们与WPF布局系统的关系有关。 希望展示我迄今为止所完成的代码的翻译将有所帮助(见下文)。 仅供参考,如果Adorners是这样的build议,这可能不适用于我的情况,因为我最终可能会得到比所支持的更多的装饰(传闻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 […]