Tag: xaml

程序占用太多内存

我正在使用WPF来开发康威生命游戏的模拟器。 出于某种原因,有时程序需要高达400,000K的内存(当我快速绘制很多单元格时)。 如何减少内存使用量和/或减少由此引起的滞后。 编辑1:主窗口代码: http : //pastebin.com/mz0z7tBu 网格类: http : //pastebin.com/ZHX1WBuK 细胞结构: struct Cell { public int Neighbors {get; set;} public bool Alive { get; set; } } 编辑2:我将尝试解释程序结构:单元格是一个结构,包含类型为int的AutoProperty邻居,以及类型为bool的AutoProperty IsAlive。 CellGrid是一个包装2D数组Cell的类。 每次迭代时,每个Cell的Neighbors属性都会更新为包含Neighbors活动的数量,然后每个Cell的IsALive设置为true或false,取决于邻居的数量和之前的IsAlive状态。 MainWindow类有一个CellGrid类型的对象。 它将网格呈现在屏幕上。 编辑3: XAML: http : //pastebin.com/Zp3dr8zc resources.xaml:

出现wpf windows窗体后运行程序

您好我有wpf(c#)项目的问题。 这是我的来源 namespace WpfApplication1 { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); MessageBox.Show(“Test”); } } } 我想运行我的程序 MessageBox.Show(“Test”); 在Windows窗体出现之后……但是在我启动程序的代码中,只需先在消息框中显示Test,然后出现该窗体! 我应该怎么做第一个窗体窗体,然后打开一个消息框来显示(测试)? 我正在使用visual studio 2015(WPF)项目

为什么我的用户控件崩溃了Visual Studio?

我花了一整天时间试图弄清楚为什么这个用户控件崩溃VS2010(Windows Phone 7.1开发)。 应用程序运行此控件没有问题,但是当我在MainPage.xaml中进入设计模式时 – VS崩溃。 Visible Collapsed Visible Visible Visible 而现在的代码。 namespace blabla.Controls { public partial class Tile : UserControl { /// /// Defines if the tile has two sides. /// public bool IsTwoSided { get { return (bool)GetValue(IsTwoSidedProperty); } set { SetValue(IsTwoSidedProperty, value); this.startAnimations(); } } /// /// Image that will be displayed […]

在xaml窗口上调用ShowDialog时,如何防止调用垃圾收集?

我有一个使用大量内存的应用程序,但是现在我无法改变这个事实。 我的问题是我有一个我想要执行的操作并提供一个进度对话框但是看起来显示xaml进度窗口会导致GC.Collect被调用10次! 任何想法如何优化打开我的进度窗口? 根据我的Ants Profiler,GC.Collect的调用是 System.Window.ShowDialog() -> .. .. System.Windows.Media.Imaging.BitmapSource.CreateCachedBitmap -> SafeMILHandle.UpdateEstimatedSize -> SafeMILHandleMemoryPressure.ctor -> MemoryPressure.Add -> MemoryPressure.ProcessAdd -> GC.Collect

如何更改WPF ComboBox SelectedText BackGround Color?

我在WPF-MVVM中有一个Combobox,我在combobox的弹出框和文本框中更改了combobox。 当我滚动combobox列表项时,他的背景是粉红色的,这就是我所拥有的。 但是从combobox列表中选择项目后,combobox项目中的选定值具有蓝色背景。 这是Windows窗体和WPF中combobox的默认设置。 有关详细信息,请参见图像。 如何在combobox文本框控件中更改选定的文本背景颜色 combobox有 IsEditable=True属性集

WPF popup staysopen = false仍然会在外部单击时保持弹出窗口打开

我的问题是我在弹出窗口中创建了一个列表框,并设置了弹出窗口的staysopen = false。 但每次弹出框弹出时,我必须单击弹出窗口内的某些内容(如选择列表框中的元素),然后在弹出窗口外单击,它将自动关闭。 如果我没有点击任何内容,即使我点击弹出窗口之外的其他元素,弹出窗口也会保持打开状态。 我需要关闭弹出窗口而不需要单击其中的任何元素。 我能做什么? 这是代码,这个代码有一些其他样式链接,但只是一些颜色样式。 我的控件是当用户单击弹出框顶部的文本框时,列表框会弹出。 如果用户不执行任何操作并单击此元素外的任何位置,则弹出框将关闭。 谢谢。 我可以使用以下代码在Silverlight中完成它。 但似乎在wpf中,它不再起作用了。 popupAncestor = FindHighestAncestor(this.ListBoxPopup); if (popupAncestor == null) { return; } popupAncestor.AddHandler(System.Windows.Controls.Primitives.Popup.MouseLeftButtonDownEvent, (MouseButtonEventHandler)ClosePopup, true); <!—->

UWP – 如何平铺背景图像?

在通用Windows应用程序中,我尝试使用背景图像(来自ImageSource)并将其平铺在控件上。 XAML C# void UpdateBackground(ImageSource source) { // … gridBackground.Background = new ImageBrush { ImageSource = source, Stretch = Stretch.None }; } 根据MSDN ,ImageBrushinheritance自TileBrush。 它甚至说: 用于ImageBrush包括文本的装饰效果,或控件或布局容器的平铺背景。 我认为这应该平铺图像,如果拉伸被禁用,但唉,它只是在控件中间绘制图像。 我没有看到任何实际的属性来使它平铺。 在WPF中,有一个TileMode属性,可以设置ViewPort来指定磁贴的尺寸。 但这似乎在通用平台下缺席。 之前的问题涉及WinRT(Windows 8),但我希望使用基于画笔的解决方案,而不是用图像填充canvas。 如何使用UWP平铺背景图像?

基于单元格值的DataGrid行背景

我目前正在开发一个C#WPF数据网格。 我有一个DataGrid,它有自动生成的列,代码连接到SQLite数据库并创建数据集,然后将此数据集设置为DataGrid ItemsSource。 下面是DataGrid的XAML代码 以下是为DataGrid设置ItemsSource的代码 try { DataSet ds = new DataSet(); SQLiteDataAdapter da = new SQLiteDataAdapter(query, db.conn); da.Fill(ds); //tblGrid.AutoGenerateColumns = true; tblGrid.ItemsSource = ds.Tables[0].DefaultView; } catch (SQLiteException ex) { MessageBox.Show(“Unable to retrieve logins from database.\n\n” + ex.Message + “\n\nError Code: ” + ex.ErrorCode); } 数据库中显示的列(自动生成)是ID,日期,时间,状态。 我需要做的是,如果状态列的行中的值等于错误,则更改该行的背景颜色。 我假设我需要在DataGrid标签中添加某种样式标签和DataTriggers,但不确定我需要什么。 我尝试过设置ItemsSource的代码的任何内容都会显示一条错误,指出在添加ItemsSource之前Source必须为空。 感谢您的任何帮助,您可以提供。

如何在WPF中实现命令以使用祖先方法?

我有这个上下文菜单资源: 我想在两个地方重复使用它。 首先,我试图将它放在DataGrid : … ContextMenu本身工作正常,但是使用Executed=”…”我现在打破了应用程序并抛出: PresentationFramework.dll中出现“System.InvalidCastException”类型的第一次机会exception 附加信息:无法将类型为“System.Reflection.RuntimeEventInfo”的对象强制转换为“System.Reflection.MethodInfo”。 如果我删除整个Executed=”…”定义,那么代码就可以工作(并且命令不执行任何操作/灰显)。 一旦我右键单击网格/打开上下文菜单,就会抛出exception。 DataGrid放在几个元素下面,但最终它们都在一个TabControl (名为MainTabs ) MainTabs ,它将ItemsSource设置为FooViewModel的集合,在那个FooViewModel我有一个我想要调用的方法HelpExecuted 。 让我们想象一下: TabControl( ItemsSource=ObservableCollection , x:Name=MainTabs ) 格 更多UI DataGrid(带上下文菜单集) 为什么我会收到此错误,如何使上下文菜单命令“定位” FooViewModel的HelpExecuted方法?

动画窗口resize(宽度和高度)C#WPF

我正在寻找一些关于动画窗口大小调整窗口大小的帮助! 似乎无法想出这一个! 我只是在使用atm。 this.Width = 500; 任何帮助都会很棒! 谢谢。