wpf 相关问题

Windows Presentation Foundation或WPF是用于在基于Windows的应用程序中呈现用户界面的子系统。

如何在视图模型中检测模型内属性的变化?

我正在使用 WPF MVVM、Caliburn Micro 和 WCF 服务构建我的第一个生产应用程序。 我已经到了需要 ViewModel 来跟踪模型内各个属性的变化的地步。我...

回答 3 投票 0

如何检测视图模型中模型内属性的变化?

我正在使用 WPF MVVM、Caliburn Micro 和 WCF 服务构建我的第一个生产应用程序。 我已经到了需要 ViewModel 来跟踪模型内各个属性的变化的地步。我...

回答 3 投票 0

如何用命令行编译WPF程序?

我需要使用命令行 C# 编译器(即 csc.exe)编译我使用 Visual Studio 编写的简单 WPF 应用程序。 问题是错误 CS0103 — 编译器说……

回答 3 投票 0

我无法让 LiveCharts 图表以 0 以外的值开始

这就是我创建图表的方式: 私有SeriesCollection_graphData; 公共系列集合图数据 { 获取=>_graphData; 放 { _graphData = 值; 关于属性更改...

回答 1 投票 0

ObservableCollection Clear 使得 FlaUI 无法读取 DataItem

我有一个使用 CommunityToolkit.Mvvm 的 WPF 应用程序,它正在运行,现在我想使用 FlaUI 来创建自动化 UI 测试。 当我启动应用程序时,我有这样的窗口 在 FlaUInsp...

回答 1 投票 0

CefSharp.Wpf.Hwnd 阻止 WPF 应用程序中的键盘布局更改检测

我正在开发一个集成 CefSharp 来渲染 Web 内容的 WPF 应用程序。最初,我们使用 CefSharp.Wpf,一切都按预期工作,包括检测键盘布局的能力

回答 1 投票 0

WPF 应用程序无法处理多次过快的按钮单击

在 WPF C# 应用程序中,我有 2 个按钮。如果用户单击第一个按钮,然后很快单击第二个按钮,则仅调用第二个按钮的单击事件处理程序。任何 WPF C#

回答 1 投票 0

DockPanel ind ListItem 不拉伸

我有一个 ListView,我想要 ListItems 带有左侧图像,而不是右侧的文本和第二个文本。我尝试过使用 Grid 和 DockPanel 进行不同的思考,但是例如DockPanel 未填充...

回答 1 投票 0

使用 PngBitmapEncoder 的 RenderTargetBitmap 在没有显示时在虚拟机上生成空白图像,Windows 10 版本 1903

我们的 .NET 应用程序能够生成 .png 文件,这些文件是 WPF Canvas 的屏幕截图。 这可以从客户端触发并由我们的另一个应用程序处理(本质上是......

回答 3 投票 0

如何让自定义用户可以控制存储内容?

我有自定义的 UserControl,它是一个带有水平条纹的网格和一个 ItemsControl,它有一个由两个 Ellipse 和一个 TextBlock 组成的 Item 模板。 代表 Item 的类是 ...

回答 1 投票 0

是否可以自定义 AvalonEdit 搜索面板按钮图标?

我需要自定义下拉搜索面板以匹配我的应用程序,但我似乎可以弄清楚如何做。我正在使用 C# WPF .net Framework 4.7.2 我尝试过以下样式,但它无法识别

回答 1 投票 0

更新 WPF 用户控件中的元素

我有一个用户控件,它有一些元素和一个椭圆。当我的主窗口被调用并且我的用户控件被创建时,我有一个循环并执行某些任务的任务。期间

回答 1 投票 0

替换DLL中的图像

当我编译我的一个程序时,会生成一个DLL。 DLL 包含软件显示的图像。我制作了另一个软件,一个配置器。我希望它能够打开 DLL a

回答 5 投票 0

回答 1 投票 0

旋转和调整对象大小

我们使用装饰器在画布上拖放、旋转和调整对象大小。这工作正常,但是当在画布上或其子集上选择所有对象时,我们尝试旋转它们或调整它们的大小

回答 2 投票 0

在后面的代码中设置时,XAML 数据绑定失败

在 WPF 项目中,我有一个名为 RectZone 的 UserControl 开头为 在 WPF 项目中,我有一个名为 RectZone 的 UserControl 开头为 <UserControl x:Class="SublimeTriptych.control.RectZone" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:control="clr-namespace:SublimeTriptych.control" mc:Ignorable="d" AllowDrop="True" xml:lang="fr-FR" Drop="DropRectZone" DragOver="DragOverRectZone" DragEnter="DragEnterRectZone" DragLeave="DragLeaveRectZone" MinHeight="800" MinWidth="400" d:DesignHeight="800" d:DesignWidth="400"> <Grid> <Canvas Background="{Binding ZoneImage, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}"/> <Rectangle Stroke="Black" Visibility="{Binding GuideVisibility, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}" StrokeThickness="{Binding FrameThickness, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}"> <Rectangle.Effect> <DropShadowEffect BlurRadius="100" Color="{Binding DropShadowColor, RelativeSource={RelativeSource AncestorType=control:RectZone}}" /> </Rectangle.Effect> </Rectangle> <StackPanel VerticalAlignment="Bottom" Background="#83808080" Visibility="{Binding TitleVisibility, RelativeSource={RelativeSource AncestorType=control:RectZone}}"> <TextBlock> <Run Text="{Binding ActualWidth, StringFormat=N2, FallbackValue=200, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}" FontSize="{Binding StatusFontSize, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}"/> <Run Text="X" FontSize="{Binding StatusFontSize, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}"/> <Run Text="{Binding ActualHeight, StringFormat=N2, FallbackValue=450, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}" FontSize="{Binding StatusFontSize, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}"/> </TextBlock> <TextBlock Text="{Binding Status, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}" FontSize="{Binding StatusFontSize, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}" Visibility="{Binding LogVisibility, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}"/> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Title, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}" FontSize="{Binding StatusFontSize, Mode=OneWay, RelativeSource={RelativeSource AncestorType=control:RectZone}}" /> </StackPanel> 在后面的代码中,我定义了属性依赖项: public int FrameThickness { get { return (int)GetValue(FrameThicknessProperty); } set { SetValue(FrameThicknessProperty, value); } } public static readonly DependencyProperty FrameThicknessProperty = DependencyProperty.Register(nameof(FrameThickness), typeof(int), typeof(RectZone), new PropertyMetadata(1)); public string Title { get { return (string)GetValue(TitleProperty); } set { SetValue(TitleProperty, value); } } public static readonly DependencyProperty TitleProperty = DependencyProperty.Register(nameof(Title), typeof(string), typeof(RectZone), new PropertyMetadata("title")); public ImageBrush? ZoneImage { get { return (ImageBrush)GetValue(ZoneImageProperty); } set { SetValue(ZoneImageProperty, value); } } public static readonly DependencyProperty ZoneImageProperty = DependencyProperty.Register(nameof(ZoneImage), typeof(ImageBrush), typeof(RectZone), new PropertyMetadata(null)); public Visibility LogVisibility { get { return (Visibility)GetValue(LogVisibilityProperty); } set { SetValue(LogVisibilityProperty, value); } } public static readonly DependencyProperty LogVisibilityProperty = DependencyProperty.Register(nameof(LogVisibility), typeof(Visibility), typeof(RectZone), new PropertyMetadata(Visibility.Visible)); 我相信所有这些都是正确的,VS2022设计器显示没有问题,但是,我得到了XAML绑定失败: 其中之一的文字版本: Severity: Error Count: 4 Data Context: Visibility Binding Path: TitleVisibility Target: RectZone.TitleVisibility Target Type: Visibility Description File: TitleVisibility property not found on object of type Visibility 错误消息并未导致问题的根源。 我在另一个用户控件RectZone中使用ProjectVarioView,它在以下代码后面的代码中。 我在 ViewModel 中确定了许多 RectZone,但我在后面的代码中设置了数据绑定: 看来所有错误都与我在SetGrid和AddZone中设置的数据绑定(共7个)有关: private void ViewModelChanged(object? sender, PropertyChangedEventArgs e) { if(e.PropertyName != nameof(ViewModel)) return; SetGrid(GridZonesContainer, ViewModel.CompoConf.Cols, ViewModel.CompoConf.Rows, MarginWidth); } private void SetGrid(Grid gridBase, int cols, int rows, int marginWidth) { cols = cols * 2 + 1; rows = rows * 2 + 1; var star = new GridLength(1, GridUnitType.Star); var margin = new GridLength(marginWidth); var marginBinding = new Binding("MarginWidth") { Source = ViewModel.Margins, Mode = BindingMode.TwoWay }; gridBase.SetBinding(MarginWidthProperty, marginBinding); for (int x = 0; x < cols; x++) gridBase.ColumnDefinitions.Add(new ColumnDefinition { Width = x % 2 != 0 ? star : margin }); for (int y = 0; y < rows; y++) gridBase.RowDefinitions.Add(new RowDefinition { Height = y % 2 != 0 ? star : margin }); for (int x = 1, datax = 0; x < cols; x += 2, datax++) for (int y = 1, datay = 0; y < rows; y += 2, datay++) AddZone(x, y, datax, datay); } private void AddZone(int gridx, int gridy, int datax, int datay) { //ZoneImage = "{Binding ZonesData[gridx, gridy].Image, Mode=TwoWay}" //Title = "{Binding ZonesData[gridx, gridy].Title, Mode=TwoWay}" //TitleVisibility = "{Binding TitleVisibility, UpdateSourceTrigger=PropertyChanged}" //GuideVisibility = "{Binding GuideVisibility}" //LogVisibility = "{Binding LogVisibility}" //DebugMode = "{Binding DebugMode, Mode=TwoWay}" /> var mz = new RectZone(); var imageBinding = new Binding("Image") {Source = ViewModel.ZonesData[datax, datay].LastVignette, Mode = BindingMode.TwoWay}; mz.SetBinding(RectZone.ZoneImageProperty, imageBinding); var titleBinding = new Binding("Title") {Source = ViewModel.ZonesData[datax, datay].Name, Mode = BindingMode.TwoWay }; mz.SetBinding(RectZone.TitleProperty, titleBinding); var titleVisibilityBinding = new Binding("TitleVisibility") { Source = ViewModel.TitleVisibility }; mz.SetBinding(RectZone.TitleVisibilityProperty, titleVisibilityBinding); var guideVisibilityBinding = new Binding("GuideVisibility") { Source = ViewModel.GuideVisibility }; mz.SetBinding(RectZone.GuideVisibilityProperty, guideVisibilityBinding); var logVisibilityBinding = new Binding("LogVisibility") { Source = ViewModel.LogVisibility }; mz.SetBinding(RectZone.LogVisibilityProperty, logVisibilityBinding); var debugModeBinding = new Binding("DebugMode") { Source = ViewModel.DebugMode, Mode = BindingMode.OneWay }; mz.SetBinding(RectZone.DebugModeProperty, debugModeBinding); GridZonesContainer.Children.Add(mz); Grid.SetRow(mz, gridy); Grid.SetColumn(mz, gridx); _ZonesList.Add(mz); } ViewModel 有这个属性,其他 ViewModel 的数组: public ZoneViewModel[,] ZonesData { get => _zonesData; set { if (Equals(value, _zonesData)) return; _zonesData = value; OnPropertyChanged(); } } 和: public Visibility TitleVisibility { get => _titleVisibility; set { if (value == _titleVisibility) return; _titleVisibility = value; OnPropertyChanged(); } } public Visibility GuideVisibility { get => _guideVisibility; set { if (value == _guideVisibility) return; _guideVisibility = value; OnPropertyChanged(); } } public Visibility LogVisibility { get => _logVisibility; set { if (value == _logVisibility) return; _logVisibility = value; OnPropertyChanged(); } } ZoneViewModel 实现了这个接口: public interface IMediaViewModel : INotifyPropertyChanged { public StopwatchBag Sw { get; } public Uri URI { get; } public ImageSize ImageSize { get; set; } public string Name { get; set; } public string Filepath { get; set; } public DateTime Created { get; set; } public DateTime Modified { get; set; } public long SizeBytes { get; set; } public ImageBrush LastVignette { get; set; } public IReadOnlyList<Directory>? Metadata { get; set; } public bool HasMetadata { get; } public bool HasVignettes { get; } public Dictionary<string, string> MetaDic { get; } } 我做错了什么? 问题出在Binding实例创建上;我误用了Path(构造函数中的字符串arg),Source应该是包含属性的ViewModel(在Path中指示)。 例如,在实践中,而不是: var imageBinding = new Binding("Image") {Source = ViewModel.ZonesData[datax, datay].LastVignette, Mode = BindingMode.TwoWay}; var imageBinding = new Binding("LastVignette") {Source = ViewModel.ZonesData[datax, datay], Mode = BindingMode.TwoWay};

回答 1 投票 0

WPF:在自定义滚动查看器中,垂直滚动条比水平滚动条粗

我正在使用 WPF 作为应用程序。在XAML代码中,我定义了水平滚动条和垂直滚动条的宽度和高度。不过垂直滚动条还是比较粗...

回答 1 投票 0

为什么我的 WPF 弹出窗口会被父变换缩放?

我有一个包含 的自定义 WPF UserControl,其中包含 元素。自定义控件可由用户缩放/调整大小,但我希望 Popup 元素出现在

回答 1 投票 0

在 WPF 触摸应用程序模态窗口中触摸时按钮卡在悬停状态

我正在开发一个专为触摸屏设计的WPF应用程序。有一个模式窗口,上面有“新建”按钮。该按钮有 3 种状态: 普通的: 悬停(橙色背景): 按下(或者...

回答 1 投票 0

项目更改时更新 WPF 列表

我有一个 WPF ListBox,并且我添加了一些“FooBar”对象作为项目(通过代码)。 FooBars 不是 WPF 对象,只是带有覆盖的 ToString() 函数的愚蠢类。 现在,当我更改属性时

回答 5 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.