wpf 相关问题

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

我想在我的 Canvas 用户 MVVM 模型上创建一个用户控件

我有问题.. 我想尝试在画布上创建一个用户控件 但这不起作用,Visual Studio 检查此代码没有任何错误 我有问题.. 我想尝试在画布上制作用户控件 但是 Visual Studio 检查此代码没有任何错误是行不通的 <Grid Grid.Row="1" Grid.Column="1" Background="DarkGray"> <ItemsControl ItemsSource="{Binding Shelfs}"> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <Canvas/> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemContainerStyle> <Style TargetType="ContentPresenter"> <Setter Property="Canvas.Left" Value="{Binding X}"/> <Setter Property="Canvas.Top" Value="{Binding Y}"/> </Style> </ItemsControl.ItemContainerStyle> <ItemsControl.ItemTemplate> <DataTemplate> <ContentControl> <ContentControl.Style> <Style TargetType="ContentControl"> <Style.Triggers> <!-- Assuming UCShelf is the default type --> <DataTrigger Binding="{Binding Type}" Value="Port"> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <UC:UCPort Width="{Binding Width}" Height="{Binding Height}" Visibility="Visible"/> </DataTemplate> </Setter.Value> </Setter> </DataTrigger> <DataTrigger Binding="{Binding Type}" Value="Shelf"> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <UC:UCShelf Width="{Binding Width}" Height="{Binding Height}" Visibility="Visible"/> </DataTemplate> </Setter.Value> </Setter> </DataTrigger> </Style.Triggers> </Style> </ContentControl.Style> </ContentControl> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> </Grid> This is my Canvas in MainWindow private ObservableCollection<Shelf> _shelfs; public IEnumerable<Shelf> Shelfs => _shelfs; public MainViewModel() { _shelfs = new ObservableCollection<Shelf>(); } private ICommand addShelfCommand; public ICommand AddShelfCommand { get { return (this.addShelfCommand) ?? (this.addShelfCommand = new RelayCommand(AddShelf)); } } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } private void AddShelf() { if(_shelfs == null) { _shelfs = new ObservableCollection<Shelf>(); } _shelfs.Add(new Shelf {X = (_shelfs.Count * 40), Y = 10, Width = 30, Height = 30 }); OnPropertyChanged(nameof(Shelfs)); MessageBox.Show("Total Shelf = " + _shelfs.Count); } `这是我的 MainViewModel' 所以..我错过了什么?' '我单击按钮 AddShelfCommand、AddPortCommand 但没有反应 AddshelfCommand 和 AddPortCommand 正在工作,但我无法检查 UI` Left和Top是Canvas'附加属性,不是普通属性。因此,您必须使用特殊语法才能正确绑定它们: <ItemsControl.ItemContainerStyle> <Style TargetType="ContentPresenter"> <Setter Property="(Canvas.Left)" Value="{Binding X}"/> <Setter Property="(Canvas.Top)" Value="{Binding Y}"/> </Style> </ItemsControl.ItemContainerStyle> 注意包裹 Canvas.Left 和 Canvas.Top 路径的括号。

回答 1 投票 0

ListView 中的 DataTemplate(带有 VirtualizingStackPanel)导致 StackOverflow

我有一种数据类型元数据,其中包含视频或图像的文件路径。我正在尝试使用 DataTemplate 来显示该数据类型。将会有数千个这样的物体......

回答 1 投票 0

WPF 用户控件在 Visual Studio 2022 XAML 编辑器中无法正确显示

我最近开始使用 Visual Studio 2022 继续开发一个长期存在的 WPF 项目(最初在 Visual Studio 2017 中开发,最近在 Visual Studio 2019 中开发)。 一切...

回答 1 投票 0

在 RichTextBox 中对行进行排序的最佳方法是什么

我正在寻找对 RichTextBox 行进行排序的最佳方法,我现在正在使用它: 公共无效SortLines(对象发送者,EventArgs e) { TextPointer pStart = TextInput.Document.ContentStart;

回答 5 投票 0

WPF DataGrid - 如何从 ViewModel 中选择位置 [0,0] 的单元格

我有一个SelectionMode =“Single”SelectionUnit =“Cell”的DataGrid。 目前,当显示 DataGrid 时,最初不会选择任何单元格。 我有两个场景需要解决...

回答 1 投票 0

MaterialDesign-Flipper WPF:对齐和缩放是倾斜的。

我在 WPF XAML 应用程序中使用 Material Design,我有下面的这部分代码,当网格位于“materialDesign:Flipper”之外时,它都会正确呈现;即-它生长/伸展

回答 1 投票 0

如何在启动WPF应用程序之前检查计算机上是否安装了.net

目前,我使用.NET 8开发了一个WPF应用程序。在分发应用程序时,有两种方法。 一是利用VS自带的发布功能集成runti...

回答 1 投票 0

WPF中使用flowdocument打印预览时,如livecharts2,部分内容不显示的问题如何解决?

如何解决在WPF flowdocument中使用livecharts2,打印预览时不显示其内容的问题?谢谢。 1.FlowDocument1.xaml: 如何解决在WPF flowdocument中使用livecharts2,打印预览时不显示其内容的问题?谢谢你。 1.FlowDocument1.xaml: <FlowDocument xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:lvc="clr-namespace:LiveChartsCore.SkiaSharpView.WPF;assembly=LiveChartsCore.SkiaSharpView.WPF" xmlns:local="clr-namespace:Wpf.Start.Assets.Prints" ColumnWidth="400" FontSize="14"> <Paragraph TextAlignment="Center" FontSize="16" FontWeight="Bold"> <Run Text="{Binding Name}"></Run> </Paragraph> <BlockUIContainer> <Grid Background="#888"> <lvc:CartesianChart Height="300" Series="{Binding Series1}" XAxes="{Binding XAxes1}" YAxes="{Binding YAxes1}" /> </Grid> </BlockUIContainer> </FlowDocument> 2.MainViewModel.cs: var printPre = new PrintPreView("Assets/Prints/FlowDocument1.xaml", DeviceInfo); printPre.ShowDialog(); 3.PrintPreView.xaml: <Window x:Class="Wpf.Start.Views.PrintPreView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:lvc="clrnamespace:LiveChartsCore.SkiaSharpView.WPF;assembly=LiveChartsCore.SkiaSharpView.WPF" xmlns:local="clr-namespace:Wpf.Start.Views" mc:Ignorable="d" Title="" Height="450" Width="800"> <Grid> <DocumentViewer Name="viewer" /> </Grid> </Window> 4.PrintPreView.xaml.cs: public PrintPreView(string fileName, DeviceInfo data) { InitializeComponent(); var flowDocument = (FlowDocument)Application.LoadComponent(new Uri(fileName, UriKind.RelativeOrAbsolute)); flowDocument.DataContext = data; Dispatcher.BeginInvoke(() =\> { MemoryStream ms = new MemoryStream(); Package package = Package.Open(ms, FileMode.Create, FileAccess.ReadWrite); Uri DocumentUri = new Uri("pack://InMemoryDocument.xps"); PackageStore.RemovePackage(DocumentUri); PackageStore.AddPackage(DocumentUri, package); XpsDocument xpsDocument = new XpsDocument(package, CompressionOption.Fast, DocumentUri.AbsoluteUri); XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDocument); var paginator = (flowDocument as IDocumentPaginatorSource).DocumentPaginator; writer.Write(paginator); viewer.Document = xpsDocument.GetFixedDocumentSequence(); xpsDocument.Close(); }, DispatcherPriority.ApplicationIdle); } 在'PrintPreView.xaml.cs'文件名中,'flowDocument.DataContext'为空,你应该让它绑定到它的ViewModel。 我用你的代码做了一个程序演示,运行良好,在打印预览中成功显示其内容! 这里是演示 github:https://github.com/zzp229/StackOverFlow-1-livecharts2-

wpf
回答 1 投票 0

当远程关闭时,Visual Studio 2022 不断尝试远程调试

我有一个项目,我曾经做过一些远程调试。它发现了问题并修复了它。然后我关闭了远程调试,但是当我尝试运行该项目时,它仍在尝试远程...

回答 1 投票 0

如何在wpf中使用MVVM模式进行框架导航(相同视图,不同VM)?

我正在开发一个爬虫程序,我希望它有与浏览器类似的体验,即我可以后退/前进,我想使用 Frame 控件,但我不知道该怎么做,我的观点是...

回答 1 投票 0

C# 中检测控制台/命令行是否正在等待用户输入

我正在使用 WPF 和 C# 为我的语言 EasyBite 创建 IDE,我向 IDE 添加了一个输出面板,以使用 Process 类显示所联系的命令提示符的输出,一切正常...

回答 1 投票 0

在 wpf 应用程序运行时从 xsd 生成 c# 文件

我不确定这是否可行,甚至不是一个好的方法,但我有一个 WPF 应用程序,它使用从 xsd 文件生成的 C# 类。该类是通过在术语中使用 xsd.exe 手动生成的...

回答 1 投票 0

如何在wpf项目中实现按钮点击波纹

我想通过Style在wpf项目中实现按钮点击波纹动画效果

wpf
回答 1 投票 0

ObservableCollection itemsource 更新并失去控制焦点的问题

我尝试了几个小时来寻找并解决不同的混乱“解决方法”,但一无所获。我有一个 DataGrid,其中 itemsource 绑定到 ObservableCollection 和

回答 2 投票 0

在 App.xaml.cs 之外的 WPF 中设置 DataContext

我有一个显示 LoginView、SignUpView 和 StoreView 的 MainWindow。 DataContext 在这里工作正常。 在 StoreView 内部,它应该显示几个其他视图,默认为 Ho...

回答 1 投票 0

使用正则表达式对十进制数进行 Wpf 文本框文本验证(以 0.25 为增量)[重复]

我正在为 WPF 创建一个自定义 NumericUpDown 控件,并且需要验证用户在文本框中的输入。我不确定 TextChanged 事件是否是执行此操作的正确位置,但这就是我的

回答 1 投票 0

为什么我的菜单是从右到左而不是从左到右打开?

我来自 WinForms,第一次自学 WPF。 我想我应该从在 WPF 中重新创建我的一个 WinForms 应用程序的界面开始,但我的菜单已经出现了问题....

wpf
回答 4 投票 0

如何在wpf中的xamarin表单中隐藏标题栏

我想使用新的 MVVM 在 WPF 中的 Xamarin 表单中隐藏标题栏。我想在全屏模式下显示我的播放器页面,没有任何边框,并隐藏最小化、最大化和关闭按钮 我用过

回答 1 投票 0

有没有办法使用Powershell和WPF向循环中的多个按钮添加点击事件?

我有几个按钮在不同的列表框中执行相同的功能(对它们进行排序,或打开 Out-GridView 来搜索它们)。我想通过添加 click

回答 1 投票 0

WPF,基于(装饰器类)的自定义控件,装饰器的子级的垂直或水平对齐方式设置后生效

我想要一个自定义控件来包裹它的子控件并添加四个FrameworkElements作为(边框边),所以我选择了WPF的Decorator类,该类和xaml都在下面的githu中...

回答 1 投票 0

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