Tag: wpf

任何人都知道我可以embeddedWPF窗口或Windows窗体的代码编辑器?

我想创build自己的IDE,但我想要一个代码编辑器,将语法突出显示。 我想把它作为一个控件embedded到WPF窗口中。 马尔科姆

DataTrigger的值不为空?

我知道我可以创build一个setter来检查一个值是否为NULL,并执行一些操作。 例: <TextBlock> <TextBlock.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding SomeField}" Value="{x:Null}"> <Setter Property="TextBlock.Text" Value="It's NULL Baby!" /> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock> 但是,我怎么能检查一个“不”的价值…如“非空”或“不= 3”? 在XAML中可能吗? 结果:谢谢你的回答…我知道我可以做一个值转换器(这意味着我将不得不在代码中,这不会是我所希望的纯XAML)。 但是,这确实回答了有效的“否”你不能在纯XAML中做的问题。 然而,select的答案显示了创build这种function的最好方法。 很好找。

如何创build一个C#应用程序来决定是否显示为控制台或窗口应用程序?

有没有办法启动具有以下function的C#应用​​程序? 它通过命令行参数确定它是一个窗口或控制台应用程序 当它被要求窗口化时,它不显示控制台,并且在从控制台运行时不显示GUI窗口。 例如, myapp.exe /帮助 会输出到你使用的控制台的标准输出,但是 MyApp.exe的 本身会启动我的Winforms或WPF用户界面。 到目前为止我所知道的最好的答案涉及到有两个单独的EXE和使用IPC,但是这感觉真的很黑。 我可以做什么select和权衡取舍上面的例子中描述的行为? 我接受的是Winform特定的或WPF特定的想法。

如何创build一个WPF窗口没有可以通过一个手柄只能resize的边框?

如果您在WPF Window上设置ResizeMode="CanResizeWithGrip" ,则右下angular会显示一个resize的控制点,如下所示: 如果设置WindowStyle="None" ,标题栏将消失,但灰色斜面边缘将保留,直到您设置ResizeMode="NoResize" 。 不幸的是,通过设置这些属性的组合,resize的控制也消失了。 我已经通过自定义Style覆盖了Window的ControlTemplate 。 我想自己指定窗口的边框,而且我不需要用户能够从四面调整窗口大小,但是我确实需要resize。 有人可以详细说明一个简单的方法来满足所有这些标准吗? 除了我在ControlTemplate指定的Window之外, Window上没有边框。 在右下angular有一个工作resize的抓地力。 没有标题栏。

为什么要使用MVVM?

好的,我一直在研究MVVM模式,每次我以前都试过,我放弃了很多原因: 不必要的超长编码 编码器没有明显的优势(我的办公室没有devise师,目前只有我自己很快成为另一个编码器) 没有很多资源/好的做法的文件! (或者至less很难find) 不能想到这是有利的一个场景。 我即将再次放弃,并想我会问是否有人回答上述原因。 我真的不能看到使用这个单一/合作伙伴编码的优势。 即使在10个窗口的复杂项目。 对我来说,DataSet是一个足够好的观点和约束在布伦特回答下面的问题 可以有人展示一个例子,与XAML DataBinding相比,使用MVVM模式会节省多less时间。 我的绑定的100%目前在XAML中完成。 因此,我不认为虚拟机的重点是它需要编写和依赖的额外代码。 编辑: 经过下午的关于MVVM的研究,我终于find了一些让我从这个答案中体会到真正的好处。

从DataTemplate访问父级DataContext

我有一个ListBox绑定到一个ViewModel的子集合。 列表框项目根据父ViewModel上的属性在数据模板中进行样式设置: <Style x:Key="curveSpeedNonConstantParameterCell"> <Style.Triggers> <DataTrigger Binding="{Binding Path=DataContext.CurveSpeedMustBeSpecified, ElementName=someParentElementWithReferenceToRootDataContext}" Value="True"> <Setter Property="Control.Visibility" Value="Hidden"></Setter> </DataTrigger> </Style.Triggers> </Style> 我得到以下输出错误: System.Windows.Data Error: 39 : BindingExpression path error: 'CurveSpeedMustBeSpecified' property not found on 'object' ''BindingListCollectionView' (HashCode=20467555)'. BindingExpression:Path=DataContext.CurveSpeedMustBeSpecified; DataItem='Grid' (Name='nonConstantCurveParametersGrid'); target element is 'TextBox' (Name=''); target property is 'NoTarget' (type 'Object') 因此,如果我将绑定expression式更改为"Path=DataContext.CurrentItem.CurveSpeedMustBeSpecified"它将起作用,但只要父级用户控件的datacontext是BindingListCollectionView 。 这是不可接受的,因为用户控件的其余部分会自动绑定到BindingList上的CurrentItem属性。 如何在样式中指定绑定expression式,以便它可以工作,而不pipe父数据上下文是集合视图还是单个项目?

如何将UI调度程序传递给ViewModel

我应该能够访问属于视图我需要将其传递给ViewModel的分派器 。 但视图不应该了解任何有关ViewModel,所以你怎么通过它? 引入一个接口,而不是将它传递给实例创build一个全局的调度程序单身人士,将由视图? 你如何在你的MVVM应用程序和框架中解决这个问题? 编辑:请注意,因为我的ViewModels可能在后台线程中创build,我不能只是在ViewModel的构造函数中执行Dispatcher.Current 。

WPF TreeView:如何使用类似于资源pipe理器中的圆angular来select项目的样式

在WPF TreeView中选定的项目有一个深蓝色的背景与“尖锐”的angular落。 今天看起来有点过时了: 我想改变背景看起来像在Windows 7的资源pipe理器(有/无焦点): 我到目前为止所尝试的并不是去掉原来的深蓝色背景,而是在它的顶部绘制了一个圆形边框,以便在边缘和左侧看到深蓝色 – 很难看。 有趣的是,当我的版本没有重点,它看起来很不错: 我想避免重新定义这里或这里 显示的控制模板。 我想设置所需的最小属性,使选定的项目在资源pipe理器中看起来像。 另一种select:我也很高兴有焦点的选定的项目看起来像我现在没有焦点。 当失去焦点时,颜色应该从蓝色变为灰色。 这是我的代码: <TreeView x:Name="TreeView" ItemsSource="{Binding TopLevelNodes}" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"> <TreeView.ItemContainerStyle> <Style TargetType="{x:Type TreeViewItem}"> <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" /> <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" /> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter Property="BorderBrush" Value="#FF7DA2CE" /> <Setter Property="Background" Value="#FFCCE2FC" /> </Trigger> </Style.Triggers> </Style> </TreeView.ItemContainerStyle> <TreeView.Resources> <HierarchicalDataTemplate […]

从WPF打印/报告的最佳方法是什么?

我有一个即将到来的项目,必须能够从其数据中打印简单的报告。 这将是基于WPF的,我想知道要走哪条路。 我知道WPF引入了自己的打印技术(基于XPS),看起来很容易使用。 但是,我想知道是否使用ReportViewer控件并将其embedded到Windows窗体主机控件中会更容易,因为这将使用户能够导出到各种格式以及打印。 有没有人有任何WPF打印/报告的经验? 你会推荐哪个方向?

如何让StackPanel的孩子向下填充最大空间?

我只是想在左边stream动文字,右边是帮助框。 帮助框应该一直延伸到底部。 如果你拿出下面的外面的StackPanel它很好。 但由于布局的原因(我插入UserControlsdynamic),我需要包装StackPanel。 我如何让GroupBox向下延伸到StackPanel的底部,如你所见我已经尝试过了: VerticalAlignment = “弹力” VerticalContentAlignment = “弹力” 身高=“自动” XAML: <Window x:Class="TestDynamic033.Test3" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Test3" Height="300" Width="600"> <StackPanel VerticalAlignment="Stretch" Height="Auto"> <DockPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="Auto" Margin="10"> <GroupBox DockPanel.Dock="Right" Header="Help" Width="100" Background="Beige" VerticalAlignment="Stretch" VerticalContentAlignment="Stretch" Height="Auto"> <TextBlock Text="This is the help that is available on the news screen." TextWrapping="Wrap" /> </GroupBox> <StackPanel DockPanel.Dock="Left" Margin="10" Width="Auto" […]