草庐IT

c# - 登录 Wpf ... 对吗?

我有一个带有要访问的登录窗口的WPF应用程序,因此我为此登录窗口创建了一个启动画面,如下所示:-在App.xaml中-在App.xaml.cs中:privatevoidApplication_Startup(objectsender,StartupEventArgse){Loginlogin=newLogin();login.Show();}-如果登录成功,在Login.xaml.cs中:PrimaryWindowmainWindow=newPrimaryWindow();Application.Current.MainWindow=mainWindow;this.Close();ma

c# - M-V-VM,Model不是漏进了View吗?

众所周知,M-V-VM的要点在于关注点的分散。在MVVM、MVC或MVP等模式中,主要目的是将View与数据解耦,从而构建更灵活的组件。我将首先演示在许多WPF应用程序中发现的一个非常常见的场景,然后我将说明我的观点:假设我们有一些StockQuote应用程序,它流式传输一堆报价并将它们显示在屏幕上。通常,你会有这样的:StockQuote.cs:(模型)publicclassStockQuote{publicstringSymbol{get;set;}publicdoublePrice{get;set;}}StockQuoteViewModel.cs:(View模型)publiccl

c# - GetAdornerLayer 神秘地返回 null

我一直在为我的应用程序的多个版本使用相同的代码,没有任何问题,但我现在神秘地收到了包含以下内容的NullRerefenceException:this.Loaded+=delegate{deleteBrush=newDeleteBrushAdorner(background);AdornerLayeral=AdornerLayer.GetAdornerLayer(background);al.Add(deleteBrush);//nullrefhere??};background只是一个Border元素。我对可能导致它的两个想法是:a)切换到.NET4.0,以及b)将上述元素(它是Us

c# - 在 WPF 中,我如何实现 ICommandSource 以使我的自定义控件能够使用来自 xaml 的命令?

您能否提供一个示例,说明您如何实现ICommandSource接口(interface)。因为我希望我的UserControl具有此功能,它没有在xaml中指定命令的能力。并能够在用户单击CustomControl时处理命令。 最佳答案 这是一个例子:publicpartialclassMyUserControl:UserControl,ICommandSource{publicMyUserControl(){InitializeComponent();}publicICommandCommand{get{return(IComma

c# - WPF:更改 ComboBox 的 ItemTemplate 会移除在您键入时向下跳转列表的功能。有任何解决这个问题的方法吗?

PersonVM.cspublicclassMainWindowVM{publicMainWindowVM(){PersonList=newObservableCollection(Employees);}privatePerson[]Employees=newPerson[]{newPerson{ID=1,Name="Adam"},newPerson{ID=2,Name="Bill"},newPerson{ID=10,Name="Charlie"},newPerson{ID=15,Name="Donna"},newPerson{ID=20,Name="Edward"}};public

c# - 使用 WPF 中文本框的 KeyDown 事件捕获 Ctrl-X

我试图在用户使用KeyDown事件按下ctrl-x时触发一个事件。这适用于ctrl-D但当按下ctrl-x时事件不会触发。我猜这是因为ctrl-x是“剪切”命令。按下ctrl-X时有什么方法可以触发事件吗?privatevoidtextBox_KeyDown(objectsender,KeyEventArgse){if(e.KeyboardDevice.IsKeyDown(Key.LeftCtrl)||e.KeyboardDevice.IsKeyDown(Key.RightCtrl)){switch(e.Key){caseKey.D://handleDkeybreak;caseKey.

c# - 如何在不知道 T 是什么的情况下将 T 类型的项目添加到 List<T>?

我正在处理一个事件,该事件传递指向一个列表和一个T新项目的事件参数,我的工作是将新项目添加到列表中。如果不检查我知道T可能是的所有类型,我该如何做到这一点?当前的代码是这样的几十行:privatevoidDataGridCollectionViewSource_CommittingNewItem(objectsender,DataGridCommittingNewItemEventArgse){Typet=e.CollectionView.SourceCollection.GetType();if(t==typeof(List)){Listsource=e.CollectionView

c# - 为什么在 WPF 中将 INotifyPropertyChanged 与绑定(bind)一起使用?

我注意到几乎我在Internet上找到的每个关于绑定(bind)的示例都有一个类(它绑定(bind)到另一个属性)继承了INotifyPropertyChanged接口(interface)并在类属性的set部分使用了一个方法。我已经尝试从绑定(bind)示例中删除该部分,它的工作方式与使用该方法时相同。这是例子。我对其进行了更改,使其成为TwoWay绑定(bind)模式,并在消息框中显示更改后的属性。我这样做只是为了尝试一下绑定(bind),但现在我真的不知道为什么要使用该接口(interface)XAML:主要.cs:usingSystem;usingSystem.Collecti

c# - 启动新窗口时如何关闭当前窗口(在代码中)

SignInWindowsignIn=newSignInWindow();signIn.ShowDialog();上面的代码在我的MainWindow类中。当显示新窗口时,我希望关闭当前窗口。执行此操作的最佳方法是什么?我的应用程序是C#WPF应用程序我试过了,但是当它被调用时,我的应用程序退出了staticprivatevoidCloseAllWindows(){for(intintCounter=App.Current.Windows.Count-1;intCounter>=0;intCounter--)App.Current.Windows[intCounter].Close()

c# - 将 PDF 查看器添加到 WPF 应用程序

我是WPF的新手,正在尝试将PDF查看器添加到我的WPF应用程序,但似乎无法弄清楚如何去做......我已经尝试按照我拥有的几个教程/示例进行操作在网上找到的,但由于各种原因它们似乎对我不起作用...例如,我尝试按照教程进行操作:https://documentation.devexpress.com/#WPF/CustomDocument114328在设计时添加PDF查看器-它说到dragthePdfViewerControlfromtheDX.15.2:Data&AnalyticsToolboxtabanddropitontothemainwindow但是,我好像没有Data&An