Tag: wpf

根据属性的类型使用文本框或复选框

如果我有这个结构: public class Parent { public string Name{get; set;} public List Childs {get; set;} } public class Child { public string Name{get; set;} public int Age {get; set;} public bool Married {get; set;} } public class ParentFactory { public List Parents {get; set;} public ParentFactory() { Child child1 = new Child() {Name=”Peter”, Age=10, Married=true}; Child […]

扩展页面类

是否可以在C#的WPF工具包(或者其他任何WPF类)中扩展“Page”类? 我试图做的: public class ExtendedPage : Page{ protected void doStuff(){ // lots of joy n pleasure } } public partial class RandomWindow : ExtendedPage{ private void randomMethod(){ doStuff(); // causes error } } 我问的原因非常明显:在扩展Page-class(ExtendedPage)之后,子类(RandomWindow)无法访问其基类的方法。 这是(至少是我的猜测)由RandomWindow偏离的情况引起的。 由于这个类不幸是由WPF生成的(链接到相应的* .xaml),我无法找到部分类的其他部分。 这个问题可能导致一个非常明显的答案,让我看起来像一个完全白痴,但显然我无法弄明白。 我可能会补充一点,我刚刚开始使用C#,我的编程起源是Java。 确切的错误消息是“’type’的部分声明不能指定不同的基类”(CS0263)。 作为对其中一条评论的回应:* .xaml中的“Page”声明似乎生成了一个代码隐藏文件,其基类是“Page”(而不是ExtendedPage)。 改变这似乎也不起作用,编译器抱怨没有找到类型的ExtendedPage。 // to

只有在创建Window并显示为对话框后才能设置DialogResult

我有一个主WPF窗口,mywindow.showDialog,当在窗口上单击一个按钮时,执行一个命令让我们说命令是SendToTableCommand protected virtual void SendToTableExecute(object o) { UIThread.BeginInvoke(new Action(SendToTableExecuteUI),o); } private void SendToTableExecuteUI(object o) { if (o is Control) { m_OwningWindow = UIHelper.FindVisualParent((Control)o); } do sth… if (m_OwningWindow != null) { //only set DialogResult when window is ShowDialog before if(System.Windows.Interop.ComponentDispatcher.IsThreadModal) m_OwningWindow.DialogResult = true; } } 前一段时间, m_OwningWindow.DialogResult = true抛出exception。 所以我添加了一个使用IsThreadModal的if检查。 它已经工作了一段时间,但现在m_OwningWindow不会因为IsThreadModal是假的而关闭。 我不知道解决问题的正确方法是什么,并认为我没有正确处理它。 请帮忙。 提前致谢

如何将多个FlowDocumentReaders添加到StackPanel?

感谢Leom的回答,我可以通过将FlowDocument包装在FlowDocumentReader中来将其添加到StackPanel中。 但现在我有两个问题: 似乎只添加了第一个 FlowDocumentReader,其余的被忽略了 有一个我不能摆脱的不必要的边际 如何在没有不需要的边距的情况下将多个FlowDocumentReaders添加到StackPanel? 替代文字http://www.deviantsart.com/upload/1ndiqqe.png XAML: 代码背后: using System.Windows; using System.Windows.Controls; using System.Windows.Documents; namespace TestFlowdoc23432 { public partial class Window1 : Window { public Window1() { InitializeComponent(); StackPanel sp = new StackPanel(); TextBlock tb1 = new TextBlock(); tb1.Text = “first text block”; sp.Children.Add(tb1); TextBlock tb2 = new TextBlock(); tb2.Text = “second text block”; […]

WPF应用程序是否需要使用XAML?

我想学习C#,似乎每个人都在使用WinForms切换到使用WPF。 由于使用了用于构建Forms的.XAML文件,WPF应用程序对我来说似乎更加复杂。 在我真正参与之前,我只想问一下,XAML文件是构建WPF应用程序的唯一方法吗? 有更简单的方法吗? 我知道我可以学习使用WinForms,这看起来要容易得多,因为你基本上有一个Form对象可以使用代码,但就像我提到的那样我认为最好构建WPF应用程序

WPF:当IsEnabled = false时获取MouseEnter事件

我想在禁用控件时处理自定义控件的MouseEnter事件。 有办法处理吗?

WinForm ScrollViewer

我在WPF中有一个使用ScrollViewr的应用程序,我想将它移植到WinForms,是否有一个等效的WinForms控件? 原因: WPF程序很慢,我似乎无法学习如何正确渲染程序(GameOfLife)。 码:

如何使用XAML在整个容器(如Panel或GroupBox)上设置IsReadOnly / IsEnabled?

我有一个MVVM应用程序,它包含多个视图,其中包含一些基于用户权限,查看/编辑模式和对象状态的复杂IsReadOnly规则。 我想为同一容器中的整个控件组设置IsReadOnly和/或IsEnabled属性( GroupBox / StackPanel / Grid / UserControl /等)。 此属性的值将在ViewModel中定义。 每个UserControl我有3-6个不同的SomeGroupIsReadOnly属性(有大量的输入控件,如TextBox , RadioButtons , ComboBoxes和一些DataGrids ),我正在寻找一个通用的, MVVM友好的解决方案,这将允许我重用基于每个容器的绑定,而不是单独为每个单独的控件指定它们。 如何使用XAML在Panel或GroupBox等容器内的所有控件上设置IsReadOnly / IsEnabled? WPF似乎不支持这种开箱即用的… 编辑 我忘了提到为容器设置IsEnabled会禁用TextBoxes的一个重要function – 能够复制其内容。 我需要它们处于IsReadOnly=true状态。 如果有一个工作方法,那么我的问题将得到解决。

检查Active Directory帐户是否已锁定(WPF C#)

大家好(这是我的第一篇文章)我有一些简单的AD代码,我从Codeplex中提取http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C )并且我能够从所述代码中获取所有最终用户的信息。 现在,我一直在搜索和搜索,并从这里找到一些有趣的代码片段,并在网络上关于“用户是否被锁定?” 我想使用我已经使用了2年的代码,只需添加一些内容就可以添加到锁定的部分…如果有一个文本框给了我,我会很高兴信息,或复选框,或只是说“用户锁定”的东西,然后我会通知我的Exchange团队并让用户解锁… 我的代码如下: string eid = this.tbEID.Text; string user = this.tbUserName.Text.ToString(); string path = “PP://dc=ds,dc=SorryCantTellYou,dc=com”; DirectoryEntry de = new DirectoryEntry(path); DirectorySearcher ds = new DirectorySearcher(de); ds.Filter = “(&(objectCategory=person)(sAMAccountName=” + eid + “))”; SearchResultCollection src = ds.FindAll(); //AD results if (src.Count > 0) { if (src[0].Properties.Contains(“displayName”)) { this.tbUserName.Text = src[0].Properties[“displayName”][0].ToString(); } } 所以,如果我可以弄清楚如何使用相同的目录条目,并且搜索者向我显示帐户锁定状态,这将是惊人的..请协助

IOException未处理 – 无法找到资源app.xaml

在我的一个WPF项目中,当我打开解决方案并在调试时启动它时出现此错误。 如果我重新构建解决方案并再次启动它,则错误消失。 我已经使用以下方法删除了App.xaml中的StartUpUri,为应用程序实现了命令行支持: WPF命令行 我如何摆脱这个恼人的错误? 使用VS 2010 .net 4.0 System.IO.IOException was unhandled Message=Cannot locate resource ‘app.xaml’. Source=PresentationFramework StackTrace: at MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access) at System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access) at System.IO.Packaging.PackagePart.GetStream() at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator) at ESPS3.ServerSchemaUtility.App.InitializeComponent() in e:\ESP3.0\InternalTools\ServerSchemaUtility\ServerSchemaUtility\App.xaml:line 1 at ESPS3.ServerSchemaUtility.App.Main() in E:\ESP3.0\InternalTools\ServerSchemaUtility\ServerSchemaUtility\obj\x86\Debug\App.g.cs:line 0 at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, […]