Tag: wpf

如何Verticaly翻转BitmapImage

我想垂直翻转一个BitmapImage作为原始镜像。 这就是我所拥有但它旋转不翻转和图像。 var tb = new TransformedBitmap(); BitmapImage bi = Type.Image.Clone(); tb.BeginInit(); tb.Source = bi; var transform = new RotateTransform(180); tb.Transform = transform; tb.EndInit(); 请帮忙。 谢谢

如何在C#中打开程序集绑定日志记录?

我遇到了这个错误,无法想象缺少什么: {“Could not load file or assembly ‘xxxxx, Version=1.0.0.42, Culture=neutral, PublicKeyToken=c5067b3d1110b13c’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)”:”xxxxx, Version=1.0.0.42, Culture=neutral, PublicKeyToken=c5067b3d1110b13c”} 在详细的exception窗口中,它还告诉我: WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to […]

您建议我使用哪种文件类型播放非常小的video?

我要播放一个video游戏的小video。 每个文件最多约2-4秒。 我需要它们在我的WPF Form桌面应用程序内播放,它们需要相对较小,因为我将把它们包含在donwload大小中(它们将成为.exe文件的一部分) 我应该使用GIF吗? 或.AVI? 还是MP4? 我正在寻找易于包含到我现有的WPF项目和小尺寸。 :DI不需要播放选项只需要它来播放循环。 谢谢您的帮助。 :d 我需要的格式是: 每个video/动画文件的小尺寸。 (我将添加其中约70个) 无需在最终用户计算机上安装其他编解码器。 关于video/动画的播放,我不应该打扰他们。 中到高品质。 使用现有的WPF控件非常容易实现。

MVVM – 视图逻辑:view vs viewmodel

“应该”视图逻辑正常驻留在哪里? 在视图(包括后面的代码)或viewmodel中? 通过逻辑,我理解用于修改视图的任何内容(使其动态化),根据某些条件更改其元素属性: Visibility , IsEnabled , Content等。 我在选择正确的陈述之间苦苦挣扎: ViewModel负责所有视图“属性”,如果视图需要一些逻辑 – 这应该是viewmodel的工作。 View是一个viewmodel表示,viewmodel只需要最小的公开模型,因此逻辑应该是视图的一部分。 视图中的逻辑。 举例来说,显示一些文字: 通过查看此xaml,您知道viewmodel中有2个属性: TextAvailable和TextOk ,用于有条件地显示Text 。 使用数据触发器可以实现相同。 方式无关紧要,重点是: 逻辑在视图中 。 人们必须彻底了解两种观点:逻辑和实施 。 viewmodel中的逻辑。 Xaml更容易: 逻辑在viewmodel中 : public bool ShowText => TextAvailable && TextOk; 但这需要通知支持,通常订阅/取消订阅事件(如果确定性取消订阅很复杂,则使用弱事件),以便能够告知视图OnPropertyChanged(nameof(ShowText))是否有任何相关属性被更改。 因此, 实现在许多方法/属性中很好地分布。 我个人更喜欢拥有简单的viewmodel和相当复杂的视图(xaml),充满逻辑。 最近我发现了一种让逻辑变得非常酷的方法(没有额外的元素,更容易看到)。 我理解这两种方法都可以使用,因此问题基于意见,但我不想在我的软件中以疯狂的比例混合使用这两种方法。 哪种方式更干净,并且会被另一位MVVM程序员更好地接受? 我应该更喜欢什么?为什么?

将DataContext设置为XAML中的当前代码隐藏对象

我正在尝试将UserControl的DataContext设置为UserControl的代码隐藏类。 从代码隐藏方面来看,这很容易做到: public partial class OHMDataPage : UserControl { public StringList Stuff { get; set; } public OHMDataPage () { InitializeComponent(); DataContext = this; } } 但是,我怎样才能完全从XAML端和UserControl级别执行此操作? 如果我这样做,它适用于子节点(并从代码隐藏中删除DataContext = this; ): 我真的很想了解如何在UserControl本身上执行此操作。 我希望这可行: 但事实并非如此。

将Shapes.Path项绑定到ItemsControl

我一直在试图弄清楚如何将ObservableCollection绑定到ItemsControl。 我有一个现有的项目,它严重依赖于后面的代码和canvas没有绑定,我试图更新以使用mvvm和prism。 ObservableCollection将填充许多Path项。 它们是由我使用的外部库生成的。 当我手动操作canvas本身时,库正常运行。 以下是ViewModel代码的片段: ObservableCollection _items; ObservableCollection Items { get { return _items; } set { _items = value; this.NotifyPropertyChanged(“Items”); } } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(string propertyName) { if (this.PropertyChanged != null) { this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } 支持XAML 我遇到的问题是Path永远不会画画。 关于我哪里出错以及从哪里开始调试过程的任何建议?

即使在WPF中提供CommandParameter后,按钮仍未启用

我创建了一个按钮,其命令参数设置和命令使用实现ICommand接口的类。 但是我的按钮被禁用了。 这是为什么? 我从这里得到了这个代码: ICommand就像一块巧克力蛋糕 Button 我的class级是 class HelloWorldCommand:ICommand { public bool CanExecute(object parameter) { return parameter != null; } public event EventHandler CanExecuteChanged; public void Execute(object parameter) { MessageBox.Show(parameter.ToString()); } }

如何使用WPF用户控件关闭父窗口

假设我有两个WPF窗口:window_One和window_Two。 window_One有一个按钮。 单击此按钮将打开window_Two。 window_Two包含一个用户控件。 该用户控件有一个关闭window_Two的按钮。 我该如何实现这种情况?

wpf用户控件的多个实例都使用相同的viewmodel

我有一个应用程序,当我单击一个按钮加载一个带有usercontrol的新tabitem。 这工作正常,但是……当我再次单击“添加”按钮时,会添加另一个tabitem以及usercontrol的新实例。 这就是问题所在。 当我在tab1中添加一些数据并切换到tab2时,我也看到了输入的数据。 这怎么可能? 我为每个usercontrol使用了一个新的viewmodel,因此tab1和tab2上的usercontrols如何显示相同的数据。 它可能是一些愚蠢的东西,但我找不到它…… 结构是这样的:MainWindow加载一个UserControl只有一个tabcontrol。 单击菜单中的“添加”按钮后,将添加一个新的tabitem,并在其上添加新的usercontrol。 这里有一些问题看起来像这样但是不同的.. 这是一些代码。 TabControl.xaml: TabControl.cs public TabControl() { InitializeComponent(); this.DataContext = new TabViewModel(true); } TabViewModel有一个包含tabitems的DP: public static readonly DependencyProperty TabItemsProperty = DependencyProperty.Register(“TabItems”, typeof(ObservableCollection), typeof(TabViewModel), new UIPropertyMetadata(new ObservableCollection())); public ObservableCollection TabItems { get { return (ObservableCollection)GetValue(TabItemsProperty); } set { SetValue(TabItemsProperty, value); } } 在tabitem上加载的usercontrol,MemberControl.cs public MemberControl() { InitializeComponent(); […]

检查打开的窗口是否已关闭

我有一个主窗口,它是应用程序启动窗口。 在该窗口中,有一个绑定到SQL Database的Repeater控件,以及一个用于打开新窗口的按钮。 新窗口有一个方法,可以将数据插入到第一个窗口的Repeater控件读取的SQL Database中。 转发器有一个RepeaterRefresh()方法,强制它重新绑定到SQL Database ,显示任何添加的内容。 我如何能够将第二个窗口的Close()事件绑定到RepeaterRefresh()方法,因此数据会自动显示在转发器上。 我已经读过这个 , 这个 和这个 ,但我仍然觉得我的问题没有关系。