Tag: wpf

SQLite错误:’DbProviderFactories’部分每个配置文件只能出现一次(IBM Client Access)

我正在使用我的应用程序Entity Framework和System.Data.SQLite在.NET 4.5上使用WPF和C#在我的机器上运行良好,但在测试机器上,当我通过EntityFramework访问sqlite数据库时收到此错误: “DbProviderFactories”部分每个配置文件只能出现一次。 我发现错误是在测试机器中,在machine.config中: 我删除了最后一个空元素,现在一切正常。 我想我有一些与IBM.Data.DB2.iSeries istallation(IBM Client Access)相关的东西。 我的问题是:如何在不手动编辑machine.config的情况下删除空元素? 我尝试在app.config文件中插入标记但不起作用。 我发现其他类似于我的问题,但没有人建议如何解决问题而无需手动编辑machine.config来解决问题。 这是我的app.config文件:

如何读取文件(Metro / WinRT)

我对这个看似简单的任务的明显复杂性感到震惊。 我知道我必须使用StorageFile类,并且我已经找到了这个例子 ,但我只是想读取一个我知道路径的文件,并将其作为文本读取到字符串中。 从我能够收集到的,用StorageFile读取文件,我必须经历一堆接口; IAsyncOperation和IAsyncOperationCompletedHandler 。 必须有更好(更简单)的方式。 就像是: using (StorageFile sf = StorageFile.OpenAsync(“myFile.txt”)) { string line = sf.ReadLine(); } 显然这不起作用,但也许我错过了什么,或者有人可以向我解释如何以不同的方式阅读文件?

按箭头键时文本框Keydown事件未触发

我有一个数据网格,其中一列作为DataGridTemplateColumn,如下所示: 当单元格值更改时,我想将一些项目填充到列表视图中,TextChanged事件如下: private void txtbxProduct_TextChanged(object sender, TextChangedEventArgs e) { TextBox tb = (TextBox)sender; if (tb.Text.Trim() != “”) { string qry = “select PL.Record_Id as PList_Id,PM.Record_Id as Product_Id,PM.Product_Code,PM.Product_Name,PTM.Product_Type,PL.Purchase_Rate ,PL.Selling_Rate,PL.MRP from dbo.Tbl_Product_Master PM join Tbl_Product_List PL on PL.Product_Id=PM.Record_Id join Tbl_Product_Type_Master PTM on PTM.Record_Id=PM.Product_Category_Id where PL.Batch_Flag=0 and PM.Is_Del=’false’and PM.Is_Active=’true’ and PM.Product_Name like ‘%” + tb.Text.Trim() + “%’ order […]

WPF使用鼠标和触摸拖放Adorner

我希望这是一个很好的问题,所以我会详细写下我想要实现的内容,我在互联网上发现的内容,并展示我到目前为止所做的以及我尝试过的内容。 我需要在我的应用程序中添加拖放function。 我有图像(基本上是控件),我想拖动到列表框的项目。 这是示例UI: 这是我现在的用法: 正如您所看到的,我可以拖动四个图像中的一个并将其放在列表框项目上。 如果我将图像移动到正确的目标(列表框图像)上,光标附近的图像会消失并且一切正常,但是当我不将图像放在列表项目(我释放鼠标)上时,该图像会停留在屏幕上。 我的解决方案基于这个问题的答案,我无法删除那个不需要的窗口(光标附近的图像) 我的XAML看起来像这样: 和代码背后: public partial class MainWindow { private readonly ObservableCollection _people = new ObservableCollection(); public ObservableCollection People { get { return _people; } } public MainWindow() { InitializeComponent(); _people.Add(new Person() {Name = “Person1”, Points = 10}); _people.Add(new Person() {Name = “Person2”, Points = 0}); _people.Add(new Person() {Name […]

WPF DPI问题

我开发了一个在我的计算机上看起来很棒的应用程序但是当我将它安装在具有不同分辨率和DPI设置的其他计算机上时,它看起来很糟糕。 控件彼此重叠,这只是悲惨的。 有没有人对如何避免这个有任何建议?

如何访问Listbox中的Checkbox?

我有一个列表框,我已经设置了itemstemplate,如下所示。 XAML: 我想得到所有选中的复选框。有没有办法让每个项目的复选框控制,以便我可以检查其IsChecked属性。 我可以想到一种绑定IsChecked属性的方法。但还有其他方法吗?

在XAML中重用路径对象

我有一个Path(一个明星人物): 现在我想多次复制这个Path(只是参考“NiceStar”)。 我可以在纯XAML中执行此操作吗? 通过这样做,我可以使用它一次: 但是,我不能复制这一行。 我的编译器说: 指定的元素已经是另一个元素的逻辑子元素。 首先断开它。

延迟加载虚拟化列表框中的图像

我试图以异步方式为Listbox中的每个项目延迟加载缩略图。 由于列表框是虚拟化的,因此只有当项目位于显示端口或靠近显示端口时,才会调用Thumbnail属性的getter。 public BitmapSource Thumbnail { get { TriggerLoad(); return _thumbnail; } } 我正在等待在TriggerLoad函数中加载Thumbail的昂贵操作,但UI不是非常敏感,尤其是当您尝试快速滚动大型项目列表时。 private async void TriggerLoad() { if (!LoadTriggered) { LoadTriggered = true; var cacheItem = _cache[key] as CacheItem; if (cacheItem != null) await LoadBitmapFromCache(cacheItem); // returns a Task else await LoadBitmapFromService(Id); // returns a Task } } 在这里找到了类似的问题,但它不是关于将项目加载到列表框。 有没有更好的方法来延迟加载只绑定到Listbox的数据的一部分? 编辑:我尝试了PriorityBinding和IsAsync选项,滚动并不比我目前的解决方案更好。

Visual Studio 2017 – Expression交互发生了什么?

我广泛使用Expression interaction的CallMethodAction以MVVM友好的方式处理来自XAML的事件。 我刚刚在VS2017中创建了一个新的WPF项目,现在我看到旧的Expression命名空间已经消失了。 我在MSDN上找到了这个页面,这是我正在寻找的动作,但在引用该程序集并添加命名空间后,它不包含CallMethodAction。 那个页面是针对Silverlight的,这是WPF,所以我担心行动不再可用。 那么有人知道它是否已被删除/替换? 如何才能在viewmodel上调用事件处理程序? (我确实知道InvokeCommandAction,但我更喜欢CallMethodAction,因为它会转发原始事件参数,并允许取消预览事件。) 编辑 :只是为了前进我尝试了InvokeCommandAction但它不再以相同的方式工作,我找不到有关新用法的任何文档。 我确实在MSDN上找到了Microsoft.Xaml.Interactions命名空间的这个引用 ,该命名空间似乎包含我需要的类,但该程序集似乎不存在。 我觉得我在这里遗漏了一些明显的东西。 我不知道他们如何能够对事件做出重大改变。

绑定到对象的属性

我想将网格中的一系列TextBox 绑定到一个对象的属性中,该对象本身就是我的ViewModel(DataContext)中的另一个属性。 CurrentPerson由Name和Age属性组成 在ViewModel中: public Person CurrentPerson { get; set … (with OnPropertyChanged)} Xaml: 我不确定使用的方法,我在网格范围内设置了另一个DataContext,没有任何结果,还尝试设置源和路径,如Source = CurrentPerson,Path = Age,没有任何结果,这些都是试用,看看如果有任何改变。 我该怎么做到这一点?