Tag: wpf

将焦点移动到输入键上的下一个单元格按WPF DataGrid?

我想要一个可以的Custom DataGrid, 如果处于编辑模式,当按下Enter键时也移动到下一个单元格。 当达到当前行中的最后一列时,焦点应移动到下一行的第一个单元格。 在到达下一个单元格时,如果单元格是可编辑的,它应该自动变为可编辑。 如果单元格包含ComboBox而不是combobox,则combobox应该是DropDownOpen。 请帮帮我。 我在过去的几天里一直在尝试创建一个Custom DataGrid并编写了一些代码 protected override void OnPreviewKeyDown(System.Windows.Input.KeyEventArgs e) 但我失败了。

WPF:如何使用命令和输入绑定

命令和输入绑定在WPF中似乎非常复杂 – 将特定命令绑定到某些输入似乎并不总是有效。 我该怎么做呢? – 自己回答 – 我用自己的发现更新了个人答案,考虑到我花了多长时间才找到信息,理解并实际实现这些复杂的事情。 WPF中的绑定似乎是一个不友好的概念,特别是如果你没有经验。 希望这会让人们的生活更轻松。

C#DataBinding教程

有谁知道初学者的好数据绑定教程? 我正试图让它在最近几个小时工作,我的脑袋已经在旋转..是否有任何简单的教程,没有不必要的代码,其中显示了如何将属性绑定到变量和类似的东西?

在修剪文本时显示工具提示

如何仅在修剪文本时显示ToolTip ? 像windows desktp快捷方式图标。

单个应用程序实例的WPF互斥锁无法正常工作

我正在尝试使用互斥方法只允许我的应用程序的一个实例运行。 也就是说 – 我只想为一台机器上的所有用户提供最多一个实例。 我已经阅读了关于这个问题的各种其他线程,解决方案看起来很简单但是在测试中我不能让我的第二个实例不能运行。 这是我的代码…… public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { // check that there is only one instance of the control panel running… bool createdNew = true; using (Mutex instanceMutex = new Mutex(true, @”Global\ControlPanel”, out createdNew)) { if (!createdNew) { Application.Current.Shutdown(); return; } } base.OnStartup(e); } […]

Visual Studio 2015诊断工具不再有效

我在Windows 7 SP1 64位上运行Visual Studio 2015 Community Edition Update 3,我用它来开发C#应用程序。 我喜欢在调试过程中使用诊断工具来尽早发现性能问题。 但是,他们在过去一个月左右的某个时间停止了为我工作(可能与安装Update 3有关,尽管我没有任何信息可以支持它)。 我看到错误消息“在此版本的Windows上无法进行调试时的CPU分析。要查看CPU使用情况详细信息,请运行不使用调试器的CPU使用率工具(Debug – > Performance Profiler …)。” 我尝试过的事情没有成功: 完全卸载并重新安装VS. 在我的VS安装上执行修复 确保在调试选项中禁用“使用{Managed,Native}兼容模式”。 按照此问题中的说明启用诊断中心日志记录信息。 我可以看到的错误消息不会出现在日志中。 即使我创建了一个新的WPF项目,这仍然会发生,所以我不相信它有任何项目特定的原因。 还有其他我可以试试的东西吗? 显然他们之前正在工作,所以我不相信有关我的Windows版本的错误消息不受支持。

C#| WPF – 自定义标题栏 – 最大化时从顶部拖动窗口不起作用

我有一个自定义标题栏,窗口样式设置为无。 在单击标题栏时,我检查它是否是双击(窗口最大化并恢复)如果不是双击我做Window.DragMove 。 这适用于侧面和顶部的卡扣。 但是当我尝试在窗口最大化时拖动窗口(通常会将窗口恢复原状),它什么都不做。 这是我的代码: static Window Window { get { return Application.Current.MainWindow; } } /// /// TitleBar_MouseDown – Drag if single-click, resize if double-click /// private static void TitleBar_MouseDown(object sender, MouseButtonEventArgs e) { if (e.ChangedButton == MouseButton.Left) { if (e.ClickCount == 2) { AdjustWindowSize(); } else { Window.DragMove();//Here is where I do the […]

如何避免鼠标在Touch上移动

我有一个WPF应用程序,可以使用鼠标和使用Touch。 我禁用所有窗口“增强function”,只有触摸事件: Stylus.IsPressAndHoldEnabled=”False” Stylus.IsTapFeedbackEnabled=”False” Stylus.IsTouchFeedbackEnabled=”False” Stylus.IsFlicksEnabled=”False” 结果是点击的行为就像我想要的那样,除了两点: 拖动时点击的小“触摸”光标(小白星)出现。 完全无用,因为用户手指已经在这个位置,不需要反馈(除非我的元素在可行的情况下可能改变颜色)。 移动/点击结束后,元素保持“hover”状态。 两者都是这样一个事实的结果:当Windows正确传输触摸事件时,他仍然将鼠标移动到最后一个主触摸事件。 当我在应用程序中使用触摸时,我不希望窗口完全移动鼠标。 有没有办法完全避免这种情况? 笔记: 处理触摸事件对此没有任何改变。 使用SetCursorPos移动鼠标使光标闪烁,并不是真正用户友好。 禁用触摸面板充当输入设备会完全禁用所有事件(我也更喜欢应用程序本地解决方案,而不是系统范围的解决方案)。 我不在乎解决方案是否涉及COM / PInvoke,或者在C / C ++中提供我将翻译。 如果有必要修补/挂钩一些Windows dll,那么软件无论如何都将在专用设备上运行。 我正在调查表面SDK,但我怀疑它会显示任何解决方案。 由于表面是纯触摸设备,因此不存在与鼠标交互不良的风险。

如何在WPF FrameworkElement上捕获单击和双击事件?

我可以像这样在TextBlock上单击一下 : private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e) { MessageBox.Show(“you single-clicked”); } 我可以像这样双击 TextBlock: private void TextBlock_MouseDown(object sender, MouseButtonEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { if (e.ClickCount == 2) { MessageBox.Show(“you double-clicked”); } } } 但是如何在单个TextBlock上捕获它们并区分它们?

无法将lambda表达式转换为类型’System.Delegate’,因为它不是委托类型?

我遇到了一个我似乎无法弄清楚的问题,虽然这是Stackoverflow上的一个标准问题。 我正在尝试使用以下代码异步更新我的Bing地图(请注意,这是来自旧的Silverlight项目,似乎不适用于WPF) _map.Dispatcher.BeginInvoke(() => { _map.Children.Clear(); foreach (var projectedPin in pinsToAdd.Where(pin => PointIsVisibleInMap(pin.ScreenLocation, _map))) { _map.Children.Add(projectedPin.GetElement(ClusterTemplate)); } }); 我究竟做错了什么?