草庐IT

c# - 创建自定义 wpf 事件

我已经为数据库连接创建了一个用户控件,用户可以在其中输入用户名和密码进行连接。此UserControl在MainWindow.xaml中现在,在我的用户控件后面的代码中,我创建了一个MSSQL连接。如果登录成功,我想引发一个自定义事件以在MainWindow中公开。例如在MyUserControl.xaml.cs中try{using(SqlConnectionsqlConn=newSqlConnection(connection)){sqlConn.Open();MessageBox.Show("ConnessioneRiuscita!","Connessionea"+TextIP.T

c# - WPF MVVM 代码隐藏

在我的WPFMVVM项目中,我尽量避免在View中隐藏代码。但是我有一些非常特定于View的东西。例如,当控件获得焦点时,我希望突出显示全文(即使用户单击文本框)。在这里,我可以选择在View模型中处理这个问题(然后需要了解View,我想避免这一点)。我还有一些其他类似的代码,当用户在键盘上向左或向右按​​下时(他们只对View进行更改,而不是模型或View模型)我又在想这些的最佳位置是在View的代码后面。所以我问的是代码是否只影响View(例如光标移动、选择文本框中的所有文本等...,而不是模型或View模型,是否可以将其放入代码中在后面,而不是在其他地方。想知道这里的最佳实践是什

c# - 新行在 C#/WPF 中的 MessageBox 中不起作用

简短的问题:我的资源中有一个字符串:“这是我的测试字符串{0}\n\nTest”我试图在我的消息框中显示这个字符串:MessageBox.Show(String.Format(Properties.Resources.About,Constants.VERSION),Properties.Resources.About_Title,MessageBoxButton.OK,MessageBoxImage.Information);但是我没有换行。\n仍然显示为字符,而不是新行。我也尝试使用类似mystring.Replace("\n",Environment.NewLine)的解决方法,

c# - 为什么我在 WPF 用户控件上看到 "member is not recognized or is not accessible"错误?

我有一个带有公共(public)属性的自定义用户控件,我希望能够在XAML中进行设置。在下面。TestControl.xamlTestControl.xaml.csusingSystem.Windows.Controls;namespaceMyProject.Controls{publicpartialclassTestControl:UserControl{publicstringTestMe{get;set;}publicTestControl(){InitializeComponent();}}}然后,在我的MainWindow.xaml文件中,我尝试包含以下内容:但是,即使Vi

c# - 以编程方式更改 WPF 中的按钮图标

我目前有一个按钮,上面有一个图标/图像。我已经在XAML中配置了按钮和图像:我需要能够以编程方式将此按钮的图像从播放图标更改为停止图标。我该怎么做? 最佳答案 您可以通过事件处理程序更改按钮的内容来完成此操作。您可以在Window.Resources下将“播放”图标和“停止”图标都设置为资源,如下所示:现在,单击按钮时,您只需将按钮的内容更改为不同的资源(停止图标)即可。在按钮的事件处理程序中,您可以这样做:C#privatevoidButton_Click(objectsender,RoutedEventArgse){if(Med

c# - WPF Prism - 将资源放在哪里?

我有一个Prism应用程序和各种模块。我想知道查找样式、画笔、控件模板、数据模板等资源的最佳位置在哪里?我应该制作一个资源字典并将所有内容放在那里吗?每个模块应该有自己的资源吗?还是每个View?我想遵循Prism的目标,即保持一切模块化,但我也看不到在每个模块中重新声明相同资源的意义... 最佳答案 我用Prism开发应用程序,我使用的技术非常接近Prism手册中描述的技术。有一个YourApplication.Infrastructure项目,您通常会在其中放置所有共享接口(interface)等。因此:我只是添加项目YourA

c# - WPF 组合框 : Different template in textbox and drop-downlist

这是我的组合框。我如何更改它,以便只有FullName出现在组合框的文本框部分,而所有三列仍出现在下拉部分? 最佳答案 不幸的是,SelectionBoxItemTemplate是一个只读属性,所以我们必须做更多的工作。通过将ItemTemplate设置为您希望项目在被选中时的显示方式,您可以编辑ItemContainerStyle以提供包含其他内容的ControlTemplate您要显示的字段。对于ComboBoxItem模板,我只是修改了默认模板,所以它应该是完整的功能。 关于c#-

c# - 获取 WPF ComboBox 中所选项目的标签

我有这样的组合框:如何在代码中获取标签值?写类似ExpireAfterTimeComboBox.SelectedItem.Tag的东西是行不通的。 最佳答案 您需要将其转换为ComboBoxItem类型。varselectedTag=((ComboBoxItem)ExpireAfterTimeComboBox.SelectedItem).Tag.ToString(); 关于c#-获取WPFComboBox中所选项目的标签,我们在StackOverflow上找到一个类似的问题:

c# - WPF 数据网格 : How to Determine the Current Row Index?

我正在尝试基于DataGrid实现一个非常简单的电子表格功能。用户点击一个单元格用户键入一个值并按回车键扫描当前行并更新依赖于所单击单元格的任何单元格公式。这似乎是满足我要求的最佳事件处理程序:privatevoidmy_dataGrid_CurrentCellChanged(objectsender,EventArgse)问题:如何检测当前行的行索引? 最佳答案 试试这个(假设您的网格名称是“my_dataGrid”):varcurrentRowIndex=my_dataGrid.Items.IndexOf(my_dataGrid

c# - 如何以线程安全的方式访问 C# WPF 控件?

为此,我尝试使用MSDN中的示例,但它们似乎只适用于Windows窗体。例如,使用.InvokeRequired的方法依赖于Windows窗体控件,但是此方法不适用于WPF控件。Backgoundworker方法也会抛出InvalidOperationException-Thecallingthreadcannotaccessthisobjectbecauseadifferentthreadownsit.那么如何在WPF上下文中完成呢? 最佳答案 您只想使用Dispatcher.Invoke方法(或异步等效Dispatcher.Be