Tag: wpf

自定义WPF命令模式示例

我已经做了一些WPF编程,而我从来没有得到的是命令模式。 每个例子似乎是内置的,编辑,剪切,粘贴。 任何人都有自定义命令的最佳实践的例子或build议?

如何更改ContentPresenter上的FontFamily?

我有一个接近下面的代码的扩展器的自定义模板。 我不得不改变一些代码来取出自定义类,画笔等。 <Style TargetType="{x:Type Expander}"> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="VerticalContentAlignment" Value="Top" /> <Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="FontFamily" Value="Tahoma" /> <Setter Property="FontSize" Value="12" /> <Setter Property="Foreground" Value="Black" /> <Setter Property="BorderThickness" Value="1" /> <Setter Property="Margin" Value="2,0,0,0" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Expander}"> <Border x:Name="Border" SnapsToDevicePixels="true" Background="White" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Margin="0,0,0,10" Padding="0" CornerRadius="8"> <DockPanel> […]

使用WPF和entity framework的DataAnnotationsvalidation数据?

有什么方法来validation在WPF和entity framework中使用DataAnnotations?

How to say XAML <Button Height =“Auto”/>在代码后面?

如何在代码后面设置Height="*"和Height="Auto" ?

列表视图和WPF中的DataGrid之间的区别?

嘿,我必须从数据库中检索一些问题,并dynamic显示在用户屏幕上。我还需要在网格视图的列中添加一些控件,基本上是一个问题和答案的input框。请提示我应该使用哪一个? 列表视图或数据网格?

selectWPF / C#和Qt / C ++

我和我的团队正在开发一个应用程序,其中涉及使用C ++编写的后端,并涉及使用OpenCV,MIL等库。 现在,我们需要开发一个GUI来与这个程序进行交互,使GUI显示图像,用户可以与图像交互并注释/标记图像,然后运行用C ++编写的image processingalgorithm来显示结果。 对于graphics用户界面,我坚持selectWPF和Qt我个人发现WPF更容易,而且比Qt更强大我明白,WPF不能移植到Linux,但我不担心这太多…另外,WPF使用了DirectX技术,我可能不得不在稍后阶段使用DirectX技术来生成一些3D可视化。 请帮助我以下几点: 我可以直接与WPF接口(而不是与Visual C#?) 如果(第一点)是不可能的,那么考虑一下:C ++中的代码将会很大,并且也涉及一些库,那么我可以使用C#来调用C ++函数吗?花费在学习Qt上的时间会less于使我非托pipe的非OO C ++代码与WPF一起工作? (我有一个下沉的感觉,我不得不写太多的代码接口C ++与WPF,这可能等于重写实际程序本身的一半… :-()

WPF多个CollectionView与同一个集合上的不同filter

我正在使用一个ObservableCollection与两个ICollectionView不同的filter。 一个是按某种types过滤邮件,一个是用于计算检查的邮件。 正如你所看到的消息filter和消息计数工作正常,但是当我不检查消息从列表中消失( 计数仍在工作 )。 顺便说一句,很抱歉,我想包括所有相关的东西。 XAML代码: <!– Messages List –> <DockPanel Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Height="500"> <ListBox Name="listBoxZone" ItemsSource="{Binding filteredMessageList}" Background="Transparent" BorderThickness="0"> <ListBox.ItemTemplate> <DataTemplate> <CheckBox Name="CheckBoxZone" Content="{Binding text}" Tag="{Binding id}" Unchecked="CheckBoxZone_Unchecked" Foreground="WhiteSmoke" Margin="0,5,0,0" IsChecked="{Binding isChecked}" /> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </DockPanel> <Button Content="Test Add New" Grid.Column="2" Height="25" HorizontalAlignment="Left" Margin="34,2,0,0" Click="button1_Click" /> <Label Content="{Binding checkedMessageList.Count}" Grid.Column="2" Height="25" […]

有没有办法在WPF ScrollViewer中触摸滚动?

我正在尝试在WPF应用程序中创build一个表单,该表单允许用户使用类似iPhone的手势来滚动可用的字段。 所以,我把所有的表单控件都放到了一个ScrollViewer的StackPanel里面,当屏幕上显示的元素过多时,滚动条就会出现。 但是,当我尝试在支持触摸的设备上进行testing时,平移手势(将手指放在表面上并向上拖动)不会像我所期望的那样移动可视区域。 当我简单地在ListView中放置一些元素时,触摸手势工作得很好。 有什么办法可以在ScrollViewer中启用同样的行为吗? 我的窗户是这样构造的: <Window x:Class="TestTouchScrolling.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" Loaded="Window_Loaded"> <Grid> <ScrollViewer Name="viewer" VerticalScrollBarVisibility="Auto"> <StackPanel Name="panel"> <StackPanel Orientation="Horizontal"> <Label>Label 1:</Label> <TextBox Name="TextBox1"></TextBox> </StackPanel> <StackPanel Orientation="Horizontal"> <Label>Label 2:</Label> <TextBox Name="TextBox2"></TextBox> </StackPanel> <StackPanel Orientation="Horizontal"> <Label>Label 3:</Label> <TextBox Name="TextBox3"></TextBox> </StackPanel> <!– Lots more like these –> </StackPanel> </ScrollViewer> </Grid>

如果我的应用程序没有设置StartupUri,App.xaml文件不会被parsing?

背景:我正在使用MVVM创build一个WPF应用程序,并使用一个DI容器来构build我的ViewModels 我的App.xaml看起来像这样: <Application x:Class="WpfApp.App" …xmlns etc… StartupUri="MainWindow.xaml"> <Application.Resources> <app:ServiceLocator x:Key="serviceLocator" /> </Application.Resources> </Application> MainWindow.xaml看起来像这样: <Window x:Class="CompositeMefWpfApp.MainWindow" …xmlns etc… > <Control.DataContext> <Binding Path="MainWindowViewModel" Source="{StaticResource serviceLocator}" /> </Control.DataContext> 现在,这一切工作正常,但StartupUri硬编码到XAML,我不想。 根据我发现的StartupUri和文章的指导,我删除了StartupUri ,并尝试通过在App.xaml.cs中挂载OnStartup来创buildMainWindow ,如下所示: protected override void OnStartup( StartupEventArgs e ) { base.OnStartup(e); new MainWindow().Show(); } 问题是,试图显示窗口时,应用程序崩溃,此例外: 找不到名为“{serviceLocator}”的资源。 资源名称区分大小写。 标记文件“WpfApp; component / mainwindow.xaml”中的对象“System.Windows.Data.Binding”出错第8行45位。 据我所知, <Application.Resources>部分是根本没有被读出的xaml文件。 我可以把一些代码放在OnStartup中,像这样以编程方式添加资源: Resources.BeginInit(); Resources.Add("serviceLocator", new […]

在NUnittesting中使用WPF组件 – 如何使用STA?

我需要在NUnitunit testing中使用一些WPF组件。 我通过ReSharper运行testing,并且在使用WPF对象时失败,出现以下错误: System.InvalidOperationException: 调用线程必须是STA,因为许多UI组件都需要这个。 我已经读过关于这个问题,听起来像线程需要是STA ,但我还没有想出如何做到这一点。 是什么触发了这个问题是下面的代码: [Test] public void MyTest() { var textBox = new TextBox(); textBox.Text = "Some text"; // <– This causes the exception. }