Tag: xaml

将treeviewitem显示为wpf中的网格行

基本上需要在wpf中使用treeview控件来实现这样的事情:(随机图片) http://sofzh.miximages.com/c%23/SimpleTreeGridUX.png 节点和子节点具有相同标头的位置。 我google了很多,但我对wpf的了解并不是那么好。 这是我的父节点类: public class Parent : PropertyChangedBase { public string ParentName { get; set; } public BindableCollection Children { get; set; } } 和孩子: public class Child : PropertyChangedBase { public string ChildName { get; set; } } 我的xaml树视图: 我尝试使用Grid但显然它创建了不同的网格,所以我可以在列宽上进行中继。 我试过如何在wpf应用程序中使gridview成为treeview的子元素 ,但是他们使用ListView 。 它现在不适合我,因为treeviewitem选择function与我的树视图和后面的代码紧密耦合。 有什么想法可以做到吗? 谢谢。

在WPF中显示“等待”屏幕

我正在尝试为长时间运行的操作显示请等待对话框。 问题是因为这是单线程,即使我告诉WaitScreen显示它永远不会。 有没有办法可以改变屏幕的可见性并立即显示? 我将Cursor调用作为示例包含在内。 在我调用this.Cursor之后,光标立即更新。 这正是我想要的行为。 private void Button_Click(object sender, RoutedEventArgs e) { this.Cursor = System.Windows.Input.Cursors.Pen; WaitScreen.Visibility = Visibility.Visible; // Do something long here for (Int32 i = 0; i < 100000000; i++) { String s = i.ToString(); } WaitScreen.Visibility = Visibility.Collapsed; this.Cursor = System.Windows.Input.Cursors.Arrow; } WaitScreen只是一个Z-index为99的网格,我隐藏并显示。 更新:我真的不想使用后台工作者,除非我必须这样做。 代码中有许多地方会出现这种启动和停止。

XAML UserControlinheritance

来自Java,在构建GUI组件时,我真的习惯了一种常见的做法:我通常会做一些基类,它包含GUI组件的所有常用对象,然后我扩展它。 所以,基本上,这是我想用C#和XAML实现的。 为了使问题清楚,这是我正在做的一个例子(不起作用!): 我们有一个拥有自己的XAML的基类 然后我们有一个扩展第一个类的类 从2个XAML代码开始,我想要做的是将DerivedClass放入BaseClass容器中。 这将允许我在各种派生类之间共享组件,而无需每次我需要时编写代码。 例如,如果我希望我的所有组件都具有该圆形边框,我想将其放入低音类中,然后将其放在所有派生类中,而不必重写它。 当然,每个c#类都有自己的InitializeComponent()方法,这可能意味着派生组件将通过删除基类’one来构建自己的内容。 从DerivedClass构造函数中删除方法甚至在派生类中也给出了基本内容,但是,当然,我丢失了在DerivedClass的XAML设计窗口中DerivedClass 。 从DerivedClass调用基础构造函数没有任何影响,因为它在派生的InitializeComponent()之前调用。 所以问题是:如何在不破坏派生类的XAML设计的情况下,将基类的XAML设计用于派生类? 有没有办法简单地将内容添加到基类,同时仍然使用设计器本身? (我知道我可以删除派生类的XAML并通过代码执行我想要做的事情,但我想知道我是否可以只使用设计器执行此操作,因为我不想在编写GUI时编写GUI设计师可用) 编辑: 在HighCore的回复之后,我做了一些适用于Windows Phone但我不确定我做的是正确的事情(是的,它有效,但可能是错的!)。 这是我做的: BaseControl.xaml BASE BaseControl.xaml.cs namespace TestInheritance { public partial class BaseControl : UserControl { public Grid PresenterContent { get; set; } public BaseControl() { DataContext = this; InitializeComponent(); } } } DerivedControl.xaml DERIVED 请注意, DerivedClass是BaseClass一个实例,因为我需要它们出于其他原因而拥有一些常见的属性/方法。 您对我的解决方案有何看法? 是否有意义?

Windows Phone 8.1中的ListView在滚动列表时抖动(XAML)

我在Windows Phone 8.1应用程序中滚动ListViews时遇到问题。 短列表滚动得很好,滚动顺畅但是很快虚拟化就会在整个ListView“摆动”中向左轻微踢,但是明显足以令人讨厌。 我已经尝试删除所有过渡到没有效果,以及项目加载增加到没有成功。 将项目面板设置为StackPanel(删除虚拟化)可以解决问题,但不是更可取。 我的列表视图绑定到BasicView模板附带的DefaultViewModel中的属性。 我做错了什么以及导致我的ListViews出现这种行为的原因是什么? XAML:

使用WPF数据网格时如何更改列标题的背景颜色

使用WPF数据网格时如何更改列标题的背景颜色? 需要直接修改xaml吗?

拖动WPF弹出控件

WPF Popup控件很不错,但在我看来有些局限。 有没有办法在打开时“拖动”弹出窗口(就像使用Windows的DragMove()方法一样)? 这可以在没有大问题的情况下完成,还是我必须自己编写弹出类的替代品? 谢谢

如何异步加载和显示图像

我是WPF的新手,但我已经做了很长一段时间的C#,我目前正在开发一个简单的窗口(Windows桌面),它应该可视化目录中的所有照片。 应用程序还应该知道我使用DLL的EXIF数据,如ISO,光圈等。 我已经定义了一个Photo类: public class Photo { public string FileName { get; set; } public int ISO { get; set; } … } 我想在运行时存储在List中。 然后我宣布了一个带有Image控件和TextBlock的PhotoItem (XAML用户控件)。 对于创建的每张Photo ,将创建一个PhotoItem ,将相应的Photo保存为属性: public partial class PhotoItem : UserControl { … public Photo Photo { get; set; } … } 从这个Photo属性, PhotoItem知道在哪里查找图像以及要显示的ISO等。 现在我的问题。 因为如果用户选择目录,加载Image本身以及元数据将花费太长时间,我想首先将所有PhotoItem添加到窗口(仍为空),然后运行元数据查找和图像缩略图加载他们每个人。 当然最好是这些操作不会阻止UI线程,因此我目前正在使用一个Task来收集元数据,一个用于收集缩略图。 如果图像的元数据现在可用,我将如何更新PhotoItems? 基本上,您如何拥有一个存储所有数据的集中位置,任务可以向其提供更新,UI线程可以从中创建信息。 我对XAML / […]

如何将canvas绑定到矩形列表

使用WPF我有一个矩形列表(其中可以有一个未定义的矩形数)和一个canvas。 我想使用数据绑定将这些矩形放在canvas上。 我尝试过使用一个项目控件,似乎将每个项目堆叠在下一个项目的顶部,就像垂直堆栈面板一样。 我的所有矩形都有坐标0,0,但它们在canvas上都是相互叠加的。 使用物品控制的任何替代方案?

如何在WPF中更改图像的颜色?

我有一个只是白色透明的.png图像,我想知道是否有一种简单的方法可以制作透明的绿色,透明的红色等,所以我不需要单独制作。每种颜色的png文件。

调用线程无法访问此对象,因为不同的线程拥有它。如何编辑图像?

我知道有很多这类问题。 我想发帖,以便我可以分享我的具体问题因为我感到沮丧。 我正在运行一个从db查询路径并将其放入图像元素的线程。问题是,我在xaml中创建了图像,所以当我运行这个线程时,它会抛出无法访问此对象的错误,它无法访问图像元素。 那我怎么设置它而不使用xaml ??这里是我的代码片段: public partial class Window1 : Window { Thread Frame1; public Window1() { InitializeComponent(); intializeDb(); #region start frame 1 thread Frame1 = new Thread(frame1); Frame1.SetApartmentState(ApartmentState.STA); Frame1.IsBackground = true; Frame1.Start(); #endregion } public void frame1() { string k; command.CommandText = “SELECT * FROM imageframe1”; sqlConn.Open(); Reader = command.ExecuteReader(); while (Reader.Read()) { BitmapImage […]