Tag: wpf

我如何以编程方式操作Windows 7屏幕键盘osk:移动,resize,删除标题栏/标题

我正在开发一个WPF应用程序,我希望以“永远在那里”的方式显示内置的Windows 7屏幕键盘。 所以我想: 将其移动到特定位置 将其设置为一定的宽度和高度 删除标题/标题栏,以便用户无法移动或关闭它 删除该权限以调整其大小(或任何其他用户调整)。 我已经尝试了所有典型的API函数(MoveWindow,SetWindowPos,SetWindowLong等…),但它拒绝做任何事情。 代码目前适用于所有其他进程和应用程序(例如Internet Explorer和命令提示符); 这几乎就好像api调用不适用于osk,或者它被“锁定”。 我错过了什么? 提前致谢。

寻找第三方SerialPort解决方案

我正在寻找第三方串口解决方案(商业或开源同样受欢迎)。 .NET Serial Port类中存在一些已知的错误,它们给我提供了各种线程错误。 有没有知道任何适用于C#WPF应用程序的好的第三方解决方案? [编辑]我遇到过类似的问题

如何使用MVVM访问WPF应用程序中另一个ViewModel中的一个ViewModel对象

我在WPF应用程序中使用mvvm模式而不使用任何数据库。 我陷入了问题,我有一个视图UploadView,其中用户上传一些excel文件及其视图模型名为UploadViewModel在此我读取上传的文件数据并将其保存在一些数据表对象,这是UploadvViewModals类的对象,它工作正常,但我的问题是,现在我必须在一些具有不同Viewmodal的ItemsControl中的另一个视图上显示上传的数据(datatable对象)。 作为WPF和windows的新手。我不知道如何继续。 有什么方法可以做到这一点?

ListView多行列标题,在ItemSource中包含不同类型的数据

继续这个问题。 我想实现这种ListView : 它应该有两件事: 多行列标题; 通过ItemsSource绑定的不同数据类型以不同方式显示。 要解决(1)我尝试使用HeaderTemplate : … DataTemplate可能更复杂: 其中aaa是某些GridViewColumnCollection的键: 然而,这会产生不良结果: 它在鼠标hover时看起来很难看,重新resizeB只会改变C ,但不会改变A 问题:如何正确制作多行列标题? 要解决(2)我尝试根据项目属性Mode值切换模板(当它为2时 – 使用: … 它可以工作,我可以使用ObservableCollection来绑定2种类型的对象(一种具有A,B,C属性和另一种D,E,两种类型也具有Mode属性),但是.. 它有Mode = 2项目的视觉问题。 ListView外观(称为Vista )不是inheritance的,只有Mode != 2项目才有。 我正在谈论鼠标hover突出显示和选择项目,当使用Mode = 2项目时,选择如下所示: A-AA是鼠标覆盖(但没有突出显示)和B-BB有键盘焦点(用箭头键选择,如果我尝试用鼠标点击它,它也没什么 )。 当然,我可以添加触发器,但要做什么? 改变背景颜色? 它看起来根本不是Vista ! 这里我尝试使用默认的ListViewItem模板颜色: … 但结果是……令人失望: 注意区别:选择2-22-222 ( Vista风格)和丑陋的A-AA 。 问题:如何正确显示绑定为ItemSource不同数据类型? 如何保持漂亮的Vista风格? PS:我为一点(或多)长的问题道歉。 我可以将它分成几个,但我的意图是实现完整的ListView ,我觉得所有这些都是相关的(删除任何东西可能会以简化的方式解决这个问题,不适合完整的解决方案)。

以编程方式添加到WPF中的Window.Resources

有没有办法在Window级别而不是Application级别添加ResourceDictionary? 我看到很多这样的例子: Application.Current.Resources.MergedDictionaries.Add(myResourceDictionary); 但是,没有像我期望的那样,例如: Window.Resources.MergedDictionaries.Add(myResourceDictionary); 提前致谢,

如何在MVVM中管理多个窗口

我知道有几个类似于这个的问题,但是我还没有找到明确的答案。 我正试图深入了解MVVM,并保持尽可能纯净的东西,但不确定如何在坚持模式的同时启动/关闭窗口。 我最初的想法是使用ViewModel触发代码来启动新View的数据绑定命令,然后将View的DataContext通过XAML设置为它的ViewModel。 但这违反了我认为的纯MVVM …… 在一些谷歌搜索/阅读答案之后,我遇到了一个WindowManager的概念(就像在CaliburnMicro中一样),现在如果我要在一个vanilla MVVM项目中实现其中一个,那么我的ViewModel是否可以使用它? 或者只是我申请的核心? 我目前正在将我的项目分成Model程序集/项目, ViewModel程序集/项目和View程序集/项目。 这应该进入一个不同的“核心”组装吗? 这导致了我的下一个问题(与上述有关),如何从MVVM的角度启动我的应用程序? 最初我会从App.xaml启动我的MainView.xaml,而XAML中的DataContext将附加指定的ViewModel。 如果我添加一个WindowManager ,这是我的应用程序首先启动的吗? 我是否从App.xaml.cs的代码中执行此操作?

WPF绑定:属性包含值的路径

我在顶部栏中有一个带有几个TextBlocks的扩展器,我用它来给出一个标题和一条关键信息。 理想情况下,我想设置关键信息的路径,但我无法弄清楚如何将绑定路径绑定到另一条路径(如果我没有多大意义,我道歉!) 在下面的xaml第一位工作,第二位是我正在努力的。 KeyValuePath可能包含类似“Vehicle.Registration”或“Supplier.Name”的内容,具体取决于Model。 有人能指出我正确的方向吗? 任何帮助感激不尽!

使用MVVM的WPF导航

我试图按照这篇文章中提供的答案,但我必须错过一些微不足道的东西。 我已将我的DataTemplate定义为App.xaml ,如下所示: 然后,在我的MainWindow.xaml我定义了以下代码: MainViewModel的代码包含一个属性CurrentView和一个ICommand因此我可以切换视图。 定义如下: public class MainViewModel : BaseViewModel { private BaseViewModel _currentView; public MainViewModel() { CurrentView = new HomeViewModel(); } public BaseViewModel CurrentView { get { return _currentView; } set { if (_currentView != value) { _currentView = value; RaiseChangedEvent(“CurrentView”); } } } public ICommand SwitchView { get { return new CommandHandler(() […]

WPF TextBox被切断了

出于某些奇怪的原因,我添加了大量文本后,嵌入在滚动查看器中的WPF文本框突然被切断,如下图所示。 是否有一些限制或达到的东西,我可以做大或什么? 我没有收到任何错误消息。 这是相关的Xaml: 这是我用来添加文本的C#: main.DispatchInvoke(() => { main.OutBox.Text += newText; main.Scroller.ScrollToVerticalOffset(main.Scroller.ScrollableHeight); main.Scroller.UpdateLayout(); });

如何跳转到RichTextBox中的特定行?

我正在寻找一个示例代码如何跳转到WPF中RichTextBox的特定行。 我不知道如何做到这一点,在winForms中它非常简单,因为我可以自由设置SelectionStart和SelectionLength,这与WPF不同,等效属性是只读的。