Tag: wpf

如何为通用Windows应用程序设置固定窗口大小

我刚刚开始在VS2015社区版中开发通用Windows应用程序。 我使用了名为PieCharts for Windows UWP的示例。 我的问题是,我想将窗口大小修改为400×650,就像我在旧桌面应用程序中所做的那样。 我手动设置宽度和高度它不起作用。 我的MainPage.xaml类似于以下代码。 窗口大小错误,我可以调整窗口大小。 谢谢,

在数据重新加载时保存WPF TreeView状态

我正在使用TreeView在UI中显示我的数据。 现在我的应用程序每5秒刷新一次,以便显示最新的数据。 有没有办法我可以保存我的扩展状态或树视图的崩溃状态,即使在窗口重新加载后? 因为如果我有大量的数据并且我需要超过5秒才能转到所需的数据,那么TreeView只会在窗口刷新后每5秒钟崩溃一次,我必须从头开始。 public ObservableCollection =new ObservableCollection(); public bool IsExpanded { get { return (bool)GetValue(IsExpandedProperty); } set { SetValue(IsExpandedProperty, value); } } public static readonly DependencyProperty IsExpandedProperty = DependencyProperty.Register(“IsExpanded”, typeof(bool), typeof(MyViewModel)); if (result.TotalResults > 0) { foreach (DomainObject obj in result.ResultSet) { AT myAT= (AT)obj; arrdep.Add(myAT); } }

DPI在BitmapSource.Create()方法中的相关性是什么?

我阅读了有关DPI的维基百科文章,但它让我更加困惑……我没有关于图像的任何DPI信息。 我应该使用什么DPI与BitmapSource.Create() ,使用常量(96/72?)是否可以,如果我不打算打印图像真的很重要吗?

将BitmapImage转换为灰度,并保持alpha通道

我在将BitmapImage(WPF)转换为灰度时遇到了问题,同时保留了alpha通道。 源图像是PNG。 这里的MSDN文章工作正常,但它删除了alpha通道。 有没有快速有效的方法将BitmapImage转换为灰度?

C#:从超过1个类扩展

假设我有一个ViewModel TabViewModel ,它将ObservableObject扩展为MVVM Foundation Framework中ViewModels的类。 然后我还有一个扩展TabViewModel ,现在我需要扩展DependencyObject来实现DependencyProperties。 我不能超过1class。 我该如何实现呢? 我可以有一个“中间”类,如…… TabViewModel : ObservableObject EditorTabViewModel : TabViewModel DependentEditorTabViewModel : DependencyObject 但那是一个额外的不必要的课程。 有没有更好的方法呢? UPDATE Ops实际上我不能做到以上。 DependentEditorTabViewModel仍然需要扩展EditorTabViewModel …除了DependencyObject

在WPF w / Unity和MVVM中保留用户凭据

尽管在Windows应用程序中做了类似的事情,但我在这方面做得很糟糕。 我正在研究WPF应用程序(Prism,Unity,MVVM),我刚刚完成了登录视图。 一旦根据SQL Server中的表validation了用户的凭据,我就这样做: Thread.CurrentPrincipal = user.GenericPrincipal(); 用户类定义如下: public class ApplicationIdentity : GenericIdentity, IApplicationIdentity { public string UserName { get; set; } public bool Authenticated { get; set; } public ICollection Modules { get; set; } public ICollection Views { get; set; } public ApplicationIdentity(string userName, IAuthenticatedUser authenticatedUser) : base(userName) { UserName = userName; Authenticated […]

WPF:如何使路径的大小符合其父级的大小

让我们说在混合中我拿笔工具,我只是创建一个封闭的形状。 我想将这个形状的宽度(或高度)拉伸到其容器的尺寸。 所以,让我说我有 换句话说,如何使路径的宽度符合其父级。 我试着去 但这不起作用。 它适用于矩形而不是路径,所以我怎么能用路径做?

在RichTextBox中格式化单词

我使用以下代码查找以“@”开头的每一行,并将其格式化为粗体: foreach (var line in tweetText.Document.Blocks) { var text = new TextRange(line.ContentStart, line.ContentEnd).Text; line.FontWeight = text.StartsWith(“@”) ? FontWeights.Bold : FontWeights.Normal; } 但是,我想使用代码来查找每个单词而不是以“@”开头的行,所以我可以格式化一个段落,如: Blah blah blah @username blah blah blah blah @anotherusername

如何在DataGrid中隐藏自动生成的列?

我已经从SQL服务器自动从DataTable填充了DataGrid。 我希望用户能够添加或删除哪些列可见。 我原本试过这个: public void populateTaskTable(DataTable dt) { //add the whole datatable to the datagrid dg.DataContext = dt.DefaultView; dg.Columns[0].Visibility = Visibility.Collapsed; } 对于相应的xaml(我已尝试使用和不使用AutoGenerateColumns=”True” <DataGrid Name="dg" ItemsSource="{Binding}" AutoGenerateColumns="True" <!– –> 这导致内存违规中断。 所以我做到了 MessageBox.Show(dg.Columns.Count()); 要查看列是否正在填充,它不是,它输出0即使我可以看到程序中的列。 我从之前的stackoverflow问题中发现“自动生成的列未添加到列索引”。 然后从这个问题我尝试更新DataGrid以获得像这样填充的列 taskTable.UpdateLayout(); 和 taskTable.Items.Refresh(); 哪个什么都没做。 有没有办法访问自动生成的DataGrid的属性,或者是将DataGrid的所有列添加到Columns组件的方法? 提前致谢。

如何获取使用星形定义的WPF网格列来剪辑内容?

我有一个使用星形比例的网格控件,例如 但是,在网格中放置一个长的TextBlock会导致比例被打乱。 例如 这导致中心列比另外两列多两倍。 如何保持指定的比例? 是否可以剪辑内容? 我在TextBlocks上设置了TextTrimming=”CharacterEllipsis” ,但没有运气。 编辑 至关重要的是,Grid在DataTemplate ,粘贴以下内容来观察行为, 这很重要的原因是我有另一个Grid作为ListBox的兄弟,它显示ListBox中显示的列的’headers’,如下所示, … Headers and column definitions here … Matching column definitions here 所以列匹配很重要。 我试图将DataTemplate的ColumnDefinitions绑定到外部Grid ColumnDefinitions但我无法轻易地获得对它的绑定引用。