Tag: wpf

Silverlight:如何动态创建页面

问题:我将要在Silverlight中打开的页面名称存储在数据库中。 当我启动应用程序时,我想将页面设置为此字符串 所以不是这样的: this.RootVisual = new MainPage(); 我想要这样的东西 string pageName = getValueFromDatabase() if (!PageExists(pageName)) throw error else this.RootVisual = SomeWizzyMethodToCreatePage(pageName) 我想我需要在这里使用reflection来查找所有页面(PageExists),然后以某种方式创建一个新实例(SomeWizzyMethodToCreatePage)。

以下方法之间的调用不明确:Identical.NameSpace.InitializeComponent()和Identical.NameSpace.InitializeComponent()

好吧,我怀疑这可能是Visual Studio的事情,但必须有一些原因。 我从默认项目列表中创建了一个ListBox(右键单击项目,或项目中的文件夹 – >添加 – >新项目 – > Xaml ListBox)。 我立刻得到了一条带有错误的红色波浪线: “错误2以下方法或属性之间的调用不明确:’Identical.NameSpace.ListBox1.InitializeComponent()’和’Identical.NameSpace.ListBox1.InitializeComponent()’C:\ Documents and Settings \ ouflak \ My Documents \ Visual Studio 2010 \ Projects \ Identical \ NameSpace \ ListBox1.xaml.cs 27“ 所有相关代码都是自动生成的,并且出错的原因是两个自动生成的文件之间存在冲突:ListBox1.g.cs和ListBox1.designer.cs,其中public void InitializeComponent()都在两者中声明。 当然,在这种情况下代码无法编译。 只需删除ListBox1.designer.cs就可以了,我想继续前进。 但我的问题是:为什么此代码会自动生成此错误? 我希望自动生成的任何东西都能够构建和编译,而无需触摸项目或任何代码。 对于您可以添加的几乎所有其他toobox项目,情况就是如此。 那么为什么要使用内置错误生成此代码呢? 我们应该找到一些方法来完成这项工作吗? 这段代码仅仅是一个建议,由IDE用户/开发人员来决定细节吗? 这是生成的代码:ListBox1.xaml: Item 1 Item 2 Item 3 ListBox1.g.cs: namespace Identical.Namespace […]

WPF Datagrid绑定错误与列标题中的点

我有一个.Net数据表,我用它作为WPF数据网格的源。 我遇到的问题是数据表中的一些列标题包含点。 将数据表绑定到数据网格时,将显示包含点的列,但不包含任何数据。 在网上阅读后,我发现点是数据绑定引擎中使用的特殊符号,并且混淆了数据网格对表的绑定。 我试过手动创建datagrid列+绑定并添加方括号来否定点。 这工作正常,但在我对列进行排序时会中断。 本文提到挂钩到排序事件以删除排序事件上的[]。 没有太多关于如何实现这一点的细节,我所做的尝试似乎没有摆脱错误。 如果您需要更多信息,请告诉我。

如何摆脱DataContext InitializeComponent中的StackOverflowexception?

我是wpf c#的新手,尝试一些示例应用程序,问题是当我在xaml中提到DataContext时, InitializeComponent被递归调用并显示 mscorlib.dll中发生了System.StackOverflowException 这是我的XAML标记: XAML.cs : private ICommand m_ButtonCommand; public ICommand ButtonCommand { get { return m_ButtonCommand; } set { m_ButtonCommand = value; } } public MainWindow() { InitializeComponent(); ButtonCommand = new RelayCommand(new Action(ShowEmployees)); }

在DrawingContext中绘制一个填充三角形

这是这个问题的后续行动。 题: 我试图使用DrawingContext绘制一个填充三角形,它在DrawingVisual渲染 目前,我已设法使用以下C#代码绘制三角形的轮廓: private DrawingVisual CreateTriangle() { DrawingVisual triangle = new DrawingVisual(); using ( DrawingContext dc = triangle.RenderOpen() ) { Pen drawingPen = new Pen(Brushes.Black,3); dc.DrawLine(drawingPen, new Point(0, 50), new Point(50, 0)); dc.DrawLine(drawingPen, new Point(50, 0), new Point(50, 100)); dc.DrawLine(drawingPen, new Point(50, 100), new Point(0, 50)); } return triangle; } 我明白了: 如何绘制一个三角形,除了我绘制的边框还有红色填充?

链接到WPF应用程序中的默认电子邮件处理程序中的打开新电子邮件

我的目标是基本的:在WPF表单上有一个标签/ texblock,你可以将其设置为看起来像一个链接。 单击时,控件应在用户的默认电子邮件应用程序中打开一个新的电子邮件撰写窗口。 实际打开新电子邮件窗口的代码似乎微不足道: Process.Start(“mailto:example@stackoverflow.com?subject=SubjectExample&body=BodyExample “); 但是我遇到两件事有问题: 将“新消息打开”操作绑定到标签单击事件。 对标签进行样式化,使其看起来与默认的WPF超链接完全相同。

WPF列表框。 在字符串中跳过下划线符号

我有一些WPF ListBox,它动态填充项目。 像这样的东西: ListBox.Items.Add (new ListBoxItem { Content = new CheckBox { IsChecked = true, Content = “string_string”} ); 问题出在复选框内容上。 它在GUI上显示为“stringstring”…如何逃避“_”符号? (我动态获取字符串)

Windows窗体中的WPF控件?

我想创建一些适用于WPF和Windows窗体的自定义UI控件。 这可能吗? 如果是这样,我可以在WPF中创建这些控件,还是需要使用Windows窗体控件? 还有其他考虑因素吗?

Application.Current控制台应用程序中的“null”

我目前正在尝试使用WPF组件,该组件使用来自WPF应用程序的Application.Current,但由于几个原因我从不调用Application.Run(也不是一个选项)。 结果是NullReferenceException。 我基本上试图从控制台应用程序中显示同一个WPF窗口的多个实例。 欢迎任何建议(以及C#/ F#中的代码示例)! 提前致谢

拿着箭头键为字符运动C#.Net ISSUES

所以简而言之,我只是想在WPF应用程序中围绕Canvas对象移动一个矩形。 我这里有我的KeyDown事件function。 问题是,当我长按一个键时,它会反复快速启动此function并拧紧我的矩形位置代码。 我背后的理论/逻辑:因为当你把键盘按在键盘上时它没有顺利移动(在浏览器的滚动条上测试,它开始,暂停,然后继续下去),我想要它开始一个表格在UI中移动对象的计时器。 然后当KeyUp事件发生时,计时器STOPS。 public void Window_KeyDown(object sender, KeyEventArgs e) { string msg; string keystr = e.Key.ToString(); Key keyval = e.Key; switch (keystr) { case “Down”: Console.WriteLine(“Case 1”); Display.Content = “Down”; foreach (Character character in creatures) { //character.buttondown = true; character.Position(“Down”); } break; case “Up”: Console.WriteLine(“Case 2”); Display.Content = “Up”; foreach (Character character in […]