标签: wpf-controls

停止WPF ScrollViewer自动滚动到感知内容

应用程序

我正在构建一个包含范围选择器的应用程序.这包含Slider一个UserControl派生类中包含的两个自定义绘制控件.然后,范围选择器控件包含在ScrollViewer大多数时间都可见的Horizo​​nalScrollBar中.

示例应用程序代码:(文本墙的应用)

Window.xaml(Window文件):

<Grid>
    <ScrollViewer x:Name="ScrollViewer" HorizontalScrollBarVisibility="Visible"  VerticalScrollBarVisibility="Disabled">
            <local:SliderTest x:Name="slider"                                                                         
                           LowerValue="0"
                           UpperValue="10"
                           Minimum="0"
                           Maximum="100" Width="900" Height="165" Padding="15,0,15,0" HorizontalAlignment="Left">
            </local:SliderTest>
    </ScrollViewer>
</Grid>
Run Code Online (Sandbox Code Playgroud)

SliderTest.xaml:

<UserControl x:Class="scrollviewerDemoProblem.SliderTest"
             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" 
             x:Name="root"
             xmlns:local="clr-namespace:scrollviewerDemoProblem"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <UserControl.Resources>
        <ControlTemplate x:Key="simpleSlider" TargetType="{x:Type Slider}">
            <Border SnapsToDevicePixels="true" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto" MinHeight="{TemplateBinding MinHeight}"/>
                        <RowDefinition Height="Auto" />
                    </Grid.RowDefinitions>
                    <Track x:Name="PART_Track" Grid.Row="1">
                        <Track.Thumb>
                            <Thumb x:Name="Thumb" FlowDirection="LeftToRight" Width="15">
                                <Thumb.Template>
                                    <ControlTemplate TargetType="Thumb">
                                        <Canvas>
                                            <Path x:Name="test1" StrokeThickness="0" …
Run Code Online (Sandbox Code Playgroud)

wpf scrollviewer wpf-controls

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

FlowLayoutPanel的WPF等价物是什么?

我正在开发一个WPF应用程序(一个称为"记住你的生活"的一个音符克隆),你可以动态地为一个条目分配标签(就像现在几乎任何web 2.0应用程序一样).为此我在我的Windows窗体原型中有一个FlowLayoutPanel,它完成了这项工作.如果没有足够的空间我想让标签浮动到下一行,并在需要时获得滚动条.

如何通过WPF实现这一目标?我一起玩

<StackPanel Orientation="Horizontal" FlowDirection="LeftToRight" ...>
Run Code Online (Sandbox Code Playgroud)

但如果需要,这不会移动下一行中的元素.

wpf layout wpf-controls flowlayoutpanel

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

如何自动滚动ScrollViewer - 仅当用户没有更改滚动位置时

我想在ScrollViewer包装中创建以下行为ContentControl:
ContentControl高度增长时,ScrollViewer应自动滚动到结尾.这很容易通过使用来实现ScrollViewer.ScrollToEnd().
但是,如果用户使用滚动条,则不应再进行自动滚动.这类似于VS输出窗口中发生的情况.

问题是要知道由于用户滚动而发生滚动的时间以及由于内容大小发生变化而发生滚动的时间.我试图用玩ScrollChangedEventArgsScrollChangedEvent,但不能让它开始工作.

理想情况下,我不想处理所有可能的鼠标和键盘事件.

c# wpf wpf-controls .net-3.5

31
推荐指数
4
解决办法
5万
查看次数

如何在WPF中获得顶级对象(窗口或页面)?

在我的自定义WPF控件中,我想获得一个包含Window或Page.当控件在窗口化的应用程序中时,Window.GetWindow()方法工作正常但是当它在浏览器中的XBAP应用程序中时,它返回浏览器窗口而不是页面.

有没有其他方法可以做到这一点?

wpf wpf-controls

30
推荐指数
3
解决办法
4万
查看次数

如何在WPF中创建带圆角的虚线边框?

Rectangle元素StrokeDashArray允许用虚线绘制,但它不支持圆角.该Border控件支持带圆角的漂亮粗线,但仅绘制实线.

通过任何控制实现带圆角的虚线边框的最佳方法是什么?

虚线边框示例http://img524.imageshack.us/img524/3186/dashedborder.png

c# wpf xaml wpf-controls

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

WPF CheckBox带有"Button"外观

我需要一个类似按钮的控件,它可以有一个Checked属性,这样当点击时它会保持按下状态.

我在WinForms中有这个功能,使用CheckBox控件,将Appearance属性设置为"Button".

有人能帮我吗?

wpf checkbox wpf-controls

30
推荐指数
2
解决办法
3万
查看次数

条件DataTemplate

这是我想要做的.我定义了2个数据模板,它们都引用了不同的用户控件.

<UserControl.Resources>
    <DataTemplate x:Key="myDataTemplate1">
        <Border BorderBrush="Black" BorderThickness="1">
            <myUserControl1 />
        </Border>
    </DataTemplate>
    <DataTemplate x:Key="myDataTemplate2">
            <Border BorderBrush="Black" BorderThickness="1">
                <myUserControl2/>
            </Border>
    </DataTemplate>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)

我使用这些数据模板使用ItemsControl显示项目列表,如下所示:

<ItemsControl x:Name="myItemList" ItemTemplate="{StaticResource myDataTemplate1}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate />
    </ItemsControl.ItemsPanel>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)

我希望ItemTemplate有条件地是myDataTemplate1或myDataTemplate1,具体取决于整数变量的值分别为1或2.

我应该使用DataTriggers吗?还是有其他方法可以做到这一点?感谢帮助.

wpf wpf-controls

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

WPF - 根据某些条件选择启动窗口

通过单击Run或按下运行我的程序时Ctrl + F5,是否可以根据某些检查条件打开不同的窗口?

即如果满足某些条件我想打开一个特定的窗口,但如果不是我想打开另一个窗口.

它应该像打开任何一个窗口之前一样,首先要检查条件

if(File.Exists(<path-to-file>)
    Open Window 1
else
    Open Window 2
Run Code Online (Sandbox Code Playgroud)

这可能吗?

.net c# wpf wpf-controls

30
推荐指数
2
解决办法
3万
查看次数

WPF中的滑块开/关开关

我正在寻找一个关于在iPhone上创建幻灯片ON/OFF开关的WPF教程.

以下是一个示例("发送所有流量"选项)https://secure-tunnel.com/support/software_setup/iphone/images/iphone_vpn_settings.jpg

有任何想法吗?

干杯,凯文.

wpf wpf-controls

29
推荐指数
3
解决办法
6万
查看次数

WPF ListBoxItem双击?

WPF ListBox没有DoubleClick事件,至少没有我能说的那么多.是否有针对此问题的解决方法,让我双击项目以让事件处理程序对其执行某些操作?谢谢你的帮助.

wpf wpf-controls

29
推荐指数
5
解决办法
4万
查看次数

标签 统计

wpf ×10

wpf-controls ×10

c# ×3

.net ×1

.net-3.5 ×1

checkbox ×1

flowlayoutpanel ×1

layout ×1

scrollviewer ×1

xaml ×1