Tag: wpf

DataGridComboBoxColumn用于不同行的不同ItemsSource

这里提出类似于我的问题的问题,但我没有在那里找到解决方案。 我的问题:如何将不同数据(比如Lists)绑定到不同行中每个ComboBox的“DataGridComboBoxColumn”。 这是我试过的代码 XAML: 的.cs using System.Collections.ObjectModel; // For ObservableCollection public partial class MainWindow : Window { ObservableCollection listTeachersSix = null; ObservableCollection listTeachersSeven = null; ObservableCollection listTeachersEight = null; ObservableCollection listTeachersNine = null; ObservableCollection listTeachersTen = null; ObservableCollection listSubjects = null; ObservableCollection listPeriods = null; public MainWindow() { InitializeComponent(); listTeachersSix = new ObservableCollection(); listTeachersSeven = […]

在WPF中动态添加KeyBindings

是否可以基于绑定数据源动态定义KeyBindings? 我有一个带网格的屏幕,我允许用户为它保存各种布局。 我目前将网格上下文菜单绑定到布局名称(通过ViewModel),允许它们通过菜单切换布局。 但是,我想将每个布局与快捷键相关联。 由于快捷键是由用户定义的,我不能简单地在窗口XAML中添加许多元素。 另一个问题是绑定需要提供布局的名称作为命令参数。 有没有办法从动态源动态创建一系列元素? 作为测试,我已经将绑定静态地添加到我的视图XAML中,并且它们工作正常,但这只是为了测试我的概念:

禁用Avalondock中的放置目标(布局)

我正在使用开源库AvalonDock支持拖放多个选项卡(窗格)在外部并返回到MainWindow,我想禁用大多数可能的放置目标(或者说布局),比如将标签放在另一个下面或放置标签并排。 换句话说,我只想允许在firefox或chrome浏览器中的“一行标签”中放置标签。 是否有任何属性可以禁用放置目标(布局),如果是,您能否提供一个简短的代码示例? 这是一个带有三个可停靠窗格(LayoutDocuments)的MainWindow的简单示例,它看起来像WPF标准TabControl的TabItems(抱歉,我无法发布此截图): 谢谢你的帮助!

成员名称不能与g.cs文件中的封闭类型相同

我已经在StackOverflow中搜索了这个问题的解决方案,但显然这次是不同的。 在我的Windows Phone应用程序中,当用户按下特定按钮时,应用程序应将其重定向到特定的Panorama页面,因此我按照以下方式操作: http://blogs.msdn.com/b/aschapiro/archive/2012/07/21/navigating-directly-to-a-specific-screen-inside-a-panorama-or-pivot-page.aspx 但是当我编译解决方案时,会出现此错误: ‘donazione’:成员名称不能与其封闭类型相同 但是这个错误出现在编译过程中创建的donazione.xaml文件的.g.cs文件中,所以我看了它,错误是: namespace Avis { public partial class donazione : Microsoft.Phone.Controls.PhoneApplicationPage { internal System.Windows.Controls.Grid LayoutRoot; internal Microsoft.Phone.Controls.Panorama donazione; <– the error is in this line private bool _contentLoaded; /// /// InitializeComponent …. 显然尝试修改此文件不会解决任何问题所以这里是donazione.xaml文件导致此错误: 我用how-to的方式面对它,但除了附加元素之外,初始声明是相同的。 有人可以帮帮我吗? 谢谢。

无法在辅助监视器中创建WPF窗口

我正在努力在应用中实现一些类似Chrome的标签function,并且在使新实例正确生成时遇到一些麻烦。 我已经完成了很多搜索和迭代各种解决方案,但还没有能够在第二台显示器上生成一个新窗口。 这是使用线程: 打开文件 将当前选项卡拖到其他监视器 新的应用程序实例在其中设置了该选项卡,在用户将选项卡拖动到的位置生成。 断开连接在步骤3中。新实例始终在主监视器上生成。 所以,一些代码可以扩展问题。 namespace app { public class AppView { public void OpenInNewWindow() { // Create a new viewmodel var appViewModel = new AppVM(); //// On my machine this returns the correct screen “DISPLAY2”. The Top and Left properties are 0 and 1680, respectively. var targetScreen = Screen.FromPoint(System.Windows.Forms.Cursor.Position); ////So we […]

发布后图标不起作用

我有一个简单的应用程序。 单击按钮时,tasbar图标会发生变化。 当我从visual studio运行这个应用程序时,一切正常,但是当我发布WPF应用程序时,任务栏图标不起作用(没有)。 构建操作设置为“嵌入式资源/始终复制”,我也测试了“资源”,但它不起作用。 var iconUri = new Uri(“pack://application:,,,/images/internet_connection.ico”, UriKind.RelativeOrAbsolute); this.Icon = BitmapFrame.Create(iconUri); 框架左上角的图标会发生变化,但任务栏中的图标不会更改。 有人可以帮我吗? @编辑, 由于@ Pavel的评论,我得到了它的工作。 但现在仍有一个问题: 当我在visual studio中运行它时,我这样做: var iconUri = UriHelper.GetUri(this.GetType(), “images/local_network.ico”); this.Icon = BitmapFrame.Create(iconUri); 图标发生了变化。 但是对于已发布的版本,它并没有改变。 @@编辑, 好的,这是我按下按钮时的代码: var iconUri = UriHelper.GetUri(this.GetType(), “images/internet_connection.ico”); this.Icon = BitmapFrame.Create(iconUri); mNotifyIcon = new NotifyIcon { BalloonTipText = “The app has been minimised. Click […]

为什么图像的流媒体源不起作用?

我使用以下代码来流式传输图像源: BitmapImage Art3 = new BitmapImage(); using (FileStream stream = File.OpenRead(“c:\\temp\\Album.jpg”)) { Art3.BeginInit(); Art3.StreamSource = stream; Art3.EndInit(); } artwork.Source = Art3; “artwork”是应该显示图像的XAML对象。 该代码不应该锁定图像,它不会将其锁定好,但也不显示它,默认图像变为“无”…我的猜测是我没有正确使用流,并且我的图像变为空。 救命? 更新: 我现在使用以下代码,朋友向我建议: BitmapImage Art3 = new BitmapImage(); FileStream f = File.OpenRead(“c:\\temp\\Album.jpg”); MemoryStream ms = new MemoryStream(); f.CopyTo(ms); f.Close(); Art3.BeginInit(); Art3.StreamSource = ms; Art3.EndInit(); artwork.Source = Art3; 出于某些奇怪的原因,此代码返回以下错误: 图像无法解码。 图像标头可能已损坏。 我究竟做错了什么? 我确定我试图加载的图像没有损坏。

WPF – AvalonDock – 结算文件

我在WPF项目中使用AvalonDock和MVVM。 当我点击“X”(选项卡的关闭按钮)时,我的文档关闭但保留在内存中。 它似乎只是隐藏了。 它不会从我的Model.Documents集合中删除。 如果我添加DockingManager_DocumentClosing并尝试从集合中删除我的文档,我会在Xceed.Wpf.AvalonDock.Layout.LayoutContent的以下方法中收到Exception,因为parentAsContainer为null。 /// /// Close the content /// /// Please note that usually the anchorable is only hidden (not closed). By default when user click the X button it only hides the content. public void Close() { var root = Root; var parentAsContainer = Parent as ILayoutContainer; parentAsContainer.RemoveChild(this); if (root != null) […]

为什么Window.Close事件会传播?

我遇到了一个奇怪的情况,子窗口的Close事件传播到父窗口并导致它关闭。 我做了一个最小的例子,如下所示 对于TestWindow ,只有VS生成的默认WPF窗口 在App.xaml.cs我重写OnStartup事件并将其用作自定义Main函数 protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); TestWindow t = new TestWindow(); t.ShowDialog(); } 现在,如果单击X按钮关闭TestWindow,应用程序将关闭而不是显示MainWindow 。 如果您注释掉t.ShowDialog那么MainWindow将显示正常。 接下来,如果您收听MainWindow的Closing事件,您会发现它会在TestWindow关闭后触发,这对我来说似乎不对

取消选择RowDetailsTemplate后调整Datagrid高度

我正在使用RowDetailsTemplate显示行的嵌套数据网格。 现在,当我选择一行来显示这个嵌套的datagrid时,datagrid的高度会扩展。 但是当取消选择行时,它不会降低其高度。 在折叠行详细信息后,有没有办法将数据网格大小调整为原始高度? 是否有可能以声明方式进行?