Tag: wpf

简单的WPF RadioButton绑定?

将一组3个单选button绑定到值为1,2或3的inttypes属性的最简单方法是什么?

WPF – 如果命令的CanExecute为false,如何隐藏菜单项?

默认情况下,菜单项在其命令无法执行(CanExecute = false)时被禁用。 基于CanExecute方法使菜单项可见/折叠的最简单方法是什么? 谢谢 为了方便您的解决scheme:使用“布尔到可见性”转换器将可见性属性绑定到IsEnabled属性。

在WPF DataGrid中的文本alignment

如何将列数据alignment到WPF DataGrid ?

哪个MVVM框架是WPF应用程序的最佳框架

我是WPF的初学者。 在WPF上开发最好的大中型项目之前,我需要为WPF开放源代码/免费的MVVM框架,所以请告诉我哪个MVVM框架是WPF应用程序的正确select,在这个框架下,我可以开发非常有吸引力的UI对于企业应用程序,并提供良好的教程和大量的示例代码熟悉框架的stream程。 请详细讨论。 谢谢。

在工具提示中添加分隔线

¿如何将分隔符添加到XAML中的工具提示中的文本? 我尝试这个: <Label Name="label4" UseLayoutRounding="False" Focusable="False" AllowDrop="False" Foreground="Black" Margin="6,44,132.027,76" ToolTipService.ShowDuration="12000"> <Label.ToolTip> <ToolTip> <TextBlock>Lorem ipsum dolor sit amet, consectetur adipiscing elit. </TextBlock> <TextBlock>Suspendisse eget urna eget elit ullamcorper tincidunt. Sed nec arcu sed ante sodales </TextBlock> <TextBlock>Pellentesque elit libero, semper ac tincidunt vitae, euismod at ligula.</TextBlock> </ToolTip> </Label.ToolTip> <Label.Content> <TextBlock TextAlignment="Right" TextWrapping="Wrap" Height="19" Width="108" >Lorem Ipsum</TextBlock> […]

WPF类库中的程序集范围/根级别样式

我有一个支持WPF(基于本文 )的C#(2008 / .NET 3.5)类库程序集。 我创build了几个窗口,现在正在尝试为它们创build一个通用样式集。 但是,由于它是一个类库(而不是WPF应用程序),我没有一个app.xaml(及其包含的应用程序和相应的Application.Resources)来存储这些样式以进行全局访问。 所以: 如果我没有app.xaml(见上文),我怎样才能创build一个顶级的样式定义集合,这些样式定义将被程序集中的所有xaml文件看到 ? 和/或是否可以添加一个工作的app.xaml到类库? 仅供参考,我曾尝试在ResourceDictionary.xaml文件中创buildResourceDictionary,并将其包含在“Window.Resources”块中的每个窗口中。 原来,解决了button等的风格,但不是封闭的窗口。 我可以把Style="{StaticResource MyWindowStyle}"放在窗口的开始块中,它会在VSdevise窗口中编译和显示,但是在实际的运行过程中,我得到一个parsingexception(MyWindowStyle找不到;我正在猜测Visual Studio看到包含在该行后面的字典,但CRL更顺序地执行,因此尚未加载ResourceDictionary)。 感谢您的想法,但仍然没有去…显然,类库不隐式地支持generic.xaml用法。 我将generic.xaml添加到我的类库项目,并将其构build操作设置为“资源”。 它包含: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Style TargetType="{x:Type Window}" x:Key="MyWindow"> <Setter Property="Background" Value="Black"/> </Style> </ResourceDictionary> 我想要使​​用主题的窗口xaml如下所示: <Window x:Class="MyAssembly.ConfigureGenericButtons" x:ClassModifier="internal" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Style="{StaticResource MyWindow}" Title="ConfigureGenericButtons"> …Buttons, etc… </Window> 虽然VSdevise窗口没有使用MyWindow风格(即黑色背景)显示窗口,但编译良好并启动。 但是,当包含此类库的应用程序调用导致此窗口显示时,我得到一个XamlParseException: 找不到名为“{MyWindow}”的资源。 我也试过忽略了Style参数,看看窗口是否会默认使用这个样式(我试过用generic.xaml中的x:Key来包含和不包含)。 没有错误,但在generic.xaml中定义的任何东西都没有显示出来。 我在这里做错了什么,或者有什么其他想法可以允许在窗口上使用常用的自定义样式(即,不必在每个窗口的xaml中定义样式) – 但是这不是一个应用?

在WPF中自动完成文本框

是否有可能在WPF中使文本框自动完成? 我find了一个使用combobox的示例,并通过编辑样式模板来删除三angular形。 有更好的解决scheme吗?

如何使用MVVM Light Toolkit打开一个新窗口

我在我的WPF应用程序中使用MVVM Light工具包。 我想知道从现有窗口打开新窗口的最佳方法是什么。 我有这个MainViewModel ,它负责我的应用程序的MainWindow 。 现在在MainView ,点击一个button,我想打开第二个窗口。 我有RelayCommmand绑定到Button的Command 。 在RelayCommand的方法中,我可以创build一个新的窗口对象,并简单地调用Show() ,如下所示: var view2 = new view2() view2.Show() 但我不认为ViewModel应该负责创build新的view2对象。 我已经阅读这篇文章WPF MVVM从视图模型中获取父母,其中Bugnionbuild议从viewmodel1传递消息到view1 ,然后view1应该创build新的view2 。 但是我不确定把这个消息传递给view1是什么意思呢? view1如何处理消息? 在代码背后还是什么? 问候,Nabeel

你怎么知道一个WPF窗口是否closures?

我正在处理一个应用程序,显示一些可以由用户closures或自动closures的子窗口。 在debugging一些正在抛出的exception的同时,我发现我正试图在已经closures的窗口上调用像Hide()这样的方法。 这个特殊的代码分支对于这两种情况都是通用的,我没有注意到这一点。 我的第一个想法之一是在Window上寻找一个属性,表明窗口已经closures。 我似乎无法find一个。 在WinForms中,我会寻找IsDisposed属性来指示表单已被closures(它不会可靠地用于对话框,但我不用对话框工作)。我没有看到任何等效的东西Window 。 Window.Close()的文档似乎没有指出任何由该方法更改的属性。 我是否错过了一些显而易见的东西,或者是唯一一个知道窗口是否被closures来处理Closed事件的方法? 这似乎是一个简单的任务苛刻的要求。

如何样式WPF扩展器头?

我想在WPF扩展头上应用样式。 在下面的XAML中,我有一个扩展器,但是它的样式不仅适用于标题。 谢谢。 <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="640" > <StackPanel> <StackPanel.Resources> <Style TargetType="Expander"> <Style.Resources> <LinearGradientBrush x:Key="BackBrush" StartPoint="0.5,0" EndPoint="0.5,1"> <GradientStop Color="#EF3132" Offset="0.1" /> <GradientStop Color="#D62B2B" Offset="0.9" /> </LinearGradientBrush> </Style.Resources> <Setter Property="Background" Value="{StaticResource BackBrush}"/> </Style> </StackPanel.Resources> <Expander> <StackPanel> <TextBlock>Bike</TextBlock> <TextBlock>Car</TextBlock> <TextBlock>Truck</TextBlock> </StackPanel> </Expander> </StackPanel> </Page>