Tag: wpf

在wpf中的StringFormat本地化问题

在WPF 3.5SP1中,我使用了DataBindings中的最后一个特性StringFormat: <TextBlock Text="{Binding Path=Model.SelectedNoteBook.OriginalDate, StringFormat='f'}" FontSize="20" TextTrimming="CharacterEllipsis" /> 我面对的问题是,date总是用英语格式化…虽然我的系统是法语的吗? 我如何强制date跟随系统date?

WPF数据绑定:我如何访问“父”数据上下文?

我有一个窗口中包含一个列表(见下文)。 窗口的DataContext有两个属性, Items和AllowItemCommand 。 如何获取Hyperlink的Command属性需要根据窗口的DataContextparsing的DataContext ? <ListView ItemsSource="{Binding Items}"> <ListView.View> <GridView> <GridViewColumn Header="Action"> <GridViewColumn.CellTemplate> <DataTemplate> <StackPanel> <TextBlock> <!– this binding is not working –> <Hyperlink Command="{Binding AllowItemCommand}" CommandParameter="{Binding .}"> <TextBlock Text="Allow" /> </Hyperlink> </TextBlock> </StackPanel> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView>

检测WPFvalidation错误

在WPF中,您可以使用ExceptionValidationRule或DataErrorValidationRule在数据绑定期间基于数据层中抛出的错误设置validation。 假设你有一堆这样设置的控件,并且你有一个Savebutton。 当用户单击保存button时,在继续保存之前,您需要确保没有validation错误。 如果有validation错误,你想对他们进行调查。 在WPF中,如何查找是否有任何Data Bound控件有validation错误?

selectembeddedChromium而不是IE浏览器WebBrowser控件与WPF / C#

基于Internet Explorer的WPF WebBrowser控件受到某些键盘和焦点问题以及内存泄漏问题的困扰 。 作为这些问题的替代解决scheme,我们正在考虑在基于HTML编辑的WPF / C#项目中提供用于托pipeChromium而不是WebBrowser控件的可用选项。 之前也有类似的问题。 我已经阅读了答案并完成了自己的研究, 但是我希望从那些在生产质量项目中实际使用以下任何选项的人那里获得更多的反馈意见 : Awesomium和Awesomium.NET 它看起来非常合适,但是我不喜欢这个项目不是开放源代码,而且整个源代码也不容易获得。 另外,对于我们的项目来说,这可能是一种矫枉过正,因为离屏渲染并不是我们真正依赖的。 Chromiumembedded式框架(CEF)和CEF的 .NET绑定 这可能是目前可用的最佳select。 该项目似乎是活跃的,目前与Chrome v27同步。 CEF3使用Chrome多进程架构。 它也看起来像Adobe给它一些认可 。 Google的Chrome框架 虽然它的最初目的是成为IE和Firefox的HTML5插件,但它实际上也是作为独立的ActiveX控件工作的,所以我可以把它包装起来用于WPF。 它公开了一个足够的API来与内部网页交互( onmessage, addEventListener/removeEventListener, postMessage )。 我知道谷歌将停止 Chrome框架,但我认为源将保留在Chromium存储库。 在我们去的时候用最新的Chromium代码来更新它并不难,我们将完全控制它。 WebKit .NET包装 不完全是基于铬,不使用V8引擎,所以它不是一个真正的select。 有没有其他的select,我可能忽略了? 如果有人将他/他的经验与上述任何一种scheme分享给现实生产质量的WPF项目,我将不胜感激。 您是否有任何集成,许可或部署影响? 谢谢。 [编辑]我还要感谢artlung提供了一个慷慨的赏金提供这个问题。

在WPF中使用vector图像的最佳方法?

我正在寻找一种很好的方法来在XAML中添加一个vector文件(EPS或SVG)。 我find了一个插件,可以将Illustrator中的图像导出到XAML文件中,比方说MyImage.xaml,如果我将XAML文件中的文件内容复制到我的窗口中,效果会很好(插件链接: http://www.mikeswanson .com / XAMLExport / )。 不过我相信有更好的方法存在。 是否有可能例如使用MyImage.xaml作为资源或东西,并将其导入描述窗口的XAML?

绑定到“设置”中定义的值

在WPF中,我可以使用与设置中定义的值绑定吗? 如果可以的话,请提供样品。

如何在TabControl的选项卡中保留控制状态

我是WPF的新手,试图构build一个遵循Josh Smith关于描述Model-View-ViewModeldevise模式的优秀文章的build议的项目。 使用Josh的示例代码作为基础,我创build了一个简单的应用程序,其中包含许多“工作空间”,每个工作空间都由TabControl中的选项卡表示。 在我的应用程序中,工作区是一个文档编辑器,允许通过TreeView控件操纵分层文档。 虽然我成功地打开了多个工作区,并在绑定的TreeView控件中查看文档内容,但我发现TreeView在切换选项卡时会“忘记”它的状态。 例如,如果Tab1中的TreeView部分展开,则在切换到Tab2并返回到Tab1后,它将显示为完全折叠。 此行为似乎适用于所有控件的控件状态的所有方面。 经过一番实验后,我意识到我可以通过显式绑定每个控件状态属性到基础ViewModel上的专用属性来保留TabItem中的状态。 不过,这似乎是很多额外的工作,当我只是想让所有的控件在切换工作区时记住它们的状态。 我假设我缺less一些简单的东西,但我不确定在哪里寻找答案。 任何指导将不胜感激。 谢谢,Tim 更新: 根据要求,我将尝试发布一些代码来说明这个问题。 但是,由于TreeView底层的数据非常复杂,我将发布一个简化的示例,展示相同的符号。 以下是主窗口中的XAML: <TabControl IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Path=Docs}"> <TabControl.ItemTemplate> <DataTemplate> <ContentPresenter Content="{Binding Path=Name}" /> </DataTemplate> </TabControl.ItemTemplate> <TabControl.ContentTemplate> <DataTemplate> <view:DocumentView /> </DataTemplate> </TabControl.ContentTemplate> </TabControl> 上面的XAML正确绑定到DocumentViewModel的ObservableCollection,从而每个成员都通过DocumentView呈现。 为了简单起见,我从DocumentView中删除了TreeView(上面提到的),并用包含3个固定标签的TabControlreplace它: <TabControl> <TabItem Header="A" /> <TabItem Header="B" /> <TabItem Header="C" /> </TabControl> 在这种情况下,DocumentView和DocumentViewModel之间没有绑定。 代码运行时,内部TabControl无法记住它的select,当外部TabControl切换。 但是,如果我显式绑定内部TabControl的SelectedIndex属性… <TabControl SelectedIndex="{Binding Path=SelectedDocumentIndex}"> <TabItem […]

我如何分页WPF数据网格?

我怎样才能在一个WPF DataGrid设置分页?

将button的可见性绑定到ViewModel中的bool值

我如何将一个button的可见性绑定到我的ViewModel中的布尔值? <Button Height="50" Width="50" Style="{StaticResource MyButtonStyle}" Command="{Binding SmallDisp}" CommandParameter="{Binding}" Cursor="Hand" Visibility="{Binding Path=AdvancedFormat}" />

听取依赖属性的变化

有没有办法听取DependencyProperty变化? 我希望得到通知,并在值发生变化时执行一些操作,但不能使用绑定。 它是另一个类的一个DependencyProperty 。