wpf 相关问题

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

wpf:为 Cefsharp 浏览器设置命令行设置

我的浏览器有以下 xaml 代码: 我想为浏览器设置命令行参数,例如

回答 1 投票 0

动态添加列表框项目时出现问题

我正在尝试向 ModelB 上的 ListBox 添加一条来自 ModelA 的消息 1.- 每当 ModelA 上发生触发时, A型 公共字符串消息 { 获取=>_消息; 放 {

回答 1 投票 0

缺少一些装配参考

所以我遇到了一个问题,我的项目突然出现一个错误,内容与我所做的标题相同。我以前从未遇到过这个。当我以常规模式运行 Visual Studio 2020 时,就会发生这种情况,...

回答 1 投票 0

列系列 x 轴不同间隔的不同颜色填充同一个系列?

我正在尝试实现速度/时间绘图 UI,我使用带有 MVVM 模式的 WPF 和 Beto-rodriguez 的实时图表作为我的绘图库。 我正在使用列系列。 我有两个问题: 1)我必须...

回答 4 投票 0

Spotify API 客户端获取播放列表曲目偏移量

我是 API 的新手,想尝试一下 Spotify API。 我使用 JohnnyCrazy 的 Spotify API 客户端,到目前为止它运行得很好。 使用令牌进行身份验证适用于...

回答 2 投票 0

从 INotifyPropertyChanged 切换到 ObservableObject

下午好,我正在 wpf、.net 8.0 框架、mvvm 社区工具包中进行运行时全球化。我设法在没有工具包的情况下做到了这一点(INotifyPropertyChanged,#commented code),但我不能...

回答 1 投票 0

WPF 应用程序运行并行操作

我正在开发一个小型软件应用程序。其工作原理的总体逻辑是这样的。 UDP 字符串正在本地网络上广播 应用程序将在

回答 1 投票 0

在 C# Wpf 应用程序中,如何动态更改用户控件中的按钮图标

所以在我的应用程序中我有一个用户控件。除其他外,它还有一个带有定义为几何数据的图像的按钮: 所以在我的应用程序中我有一个用户控件。除其他外,它还有一个按钮,其中的图像定义为几何数据: <!-- Add new Item Button --> <Button x:Name="createButton" Width="40" Height="40" Margin="0,0,20,0" HorizontalAlignment="Right" VerticalAlignment="Center" Command="{Binding OpenNewWindowCommand}" Style="{StaticResource RoundAccentButton}"> <!-- Icon --> <Viewbox x:Name="createViewbox" Width="22" Height="22"> <Path Data="{StaticResource NewTaskIcon}" Fill="{StaticResource OnAccent}" /> </Viewbox> </Button> ..放置在 ResourceDictionary 中的几何数据如下所示: <!-- New Task Icon --> <PathGeometry x:Key="NewTaskIcon" Figures="M17 21.2188V17.4688H13.25V14.9688H17V11.2188H19.5V14.9688H23.25V17.4688H19.5V21.2188H17ZM0.75 17.5V15H3.25V17.5H0.75ZM5.75 17.5V15H10.8438C10.7812 15.4375 10.7552 15.8542 10.7656 16.25C10.776 16.6458 10.8125 17.0625 10.875 17.5H5.75ZM0.75 12.5V10H3.25V12.5H0.75ZM5.75 12.5V10H14.0625C13.5833 10.3333 13.151 10.7083 12.7656 11.125C12.3802 11.5417 12.0417 12 11.75 12.5H5.75ZM0.75 7.5V5H3.25V7.5H0.75ZM5.75 7.5V5H20.75V7.5H5.75ZM0.75 2.5V0H3.25V2.5H0.75ZM5.75 2.5V0H20.75V2.5H5.75Z" /> 问题是我当然不想将 PathData 设置为用户控件中的硬编码值,而是将其设置在使用用户控件的位置。例如,我在另一个名为 TaskView.xaml 的视图中使用这个名为 SearchItems 的用户控件,如下所示: <UserControl x:Class="myTaskManager.UI.Wpf.MVVM.Views.TaskView" 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:uc="clr-namespace:myTaskManager.UI.Wpf.MVVM.UserControls" xmlns:vm="clr-namespace:myTaskManager.UI.Wpf.MVVM.ViewModels" d:DesignHeight="450" d:DesignWidth="435" mc:Ignorable="d"> <UserControl.DataContext> <vm:TaskViewViewModel /> </UserControl.DataContext> <DockPanel> <Border Width="435" Background="{StaticResource TaskListBackground}"> <uc:SearchItems /> </Border> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="1*" /> <ColumnDefinition Width="140" /> </Grid.ColumnDefinitions> <!-- Task Viewer --> <Grid Grid.Column="0"> <Grid.RowDefinitions> 。 。 . 我想做的是使用 PathData 访问 Viewbox 以根据用户控件的使用位置更改图标。我想我可以通过定义一个 DependencyProperty 来做到这一点,假设我们将其称为 PathData,然后将其设置在我使用用户控件的视图中,即类似这样的内容(下面是定义为用户控件的视图,它使用 SearchItems 用户控件) : <UserControl x:Class="myTaskManager.UI.Wpf.MVVM.Views.TaskView" 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:uc="clr-namespace:myTaskManager.UI.Wpf.MVVM.UserControls" xmlns:vm="clr-namespace:myTaskManager.UI.Wpf.MVVM.ViewModels" d:DesignHeight="450" d:DesignWidth="435" mc:Ignorable="d"> <UserControl.DataContext> <vm:TaskViewViewModel /> </UserControl.DataContext> <DockPanel> <Border Width="435" Background="{StaticResource TaskListBackground}"> <uc:SearchItems PathData="{StaticResource NewTaskIcon}" /> </Border> ..或者简单地在用户控件的代码隐藏中定义一个名为 PathData 的属性: public Geometry PathData { get; set; } 然后在用户控件的xaml代码中这样做: <!-- Add new Item Button --> <Button x:Name="createButton" Width="40" Height="40" Margin="0,0,20,0" HorizontalAlignment="Right" VerticalAlignment="Center" Command="{Binding OpenNewWindowCommand}" Style="{StaticResource RoundAccentButton}"> <!-- Icon --> <Viewbox x:Name="createViewbox" Width="22" Height="22"> <Path Data="{Binding PathData}" Fill="{StaticResource OnAccent}" /> </Viewbox> </Button> ..然后在使用用户控件的视图中只需使用与上面相同的语法,即: <UserControl x:Class="myTaskManager.UI.Wpf.MVVM.Views.TaskView" 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:uc="clr-namespace:myTaskManager.UI.Wpf.MVVM.UserControls" xmlns:vm="clr-namespace:myTaskManager.UI.Wpf.MVVM.ViewModels" d:DesignHeight="450" d:DesignWidth="435" mc:Ignorable="d"> <UserControl.DataContext> <vm:TaskViewViewModel /> </UserControl.DataContext> <DockPanel> <Border Width="435" Background="{StaticResource TaskListBackground}"> <uc:SearchItems PathData="{StaticResource NewTaskIcon}" /> </Border> ..我动态设置 PathData,但这些方法似乎都不起作用。实现这一目标的最佳方法是什么? 任何为我指明正确方向的答案将不胜感激。 谢谢, 彼得 UserControl 应公开一个 依赖属性 public static readonly DependencyProperty IconDataProperty = DependencyProperty.Register( nameof(IconData), typeof(Geometry), typeof(TaskView)); public Geometry IconData { get => (Geometry)GetValue(IconDataProperty); set => SetValue(IconDataProperty, value); } 通过 RelativeSource 绑定在控件的 XAML 中的 Path 元素中使用。请注意,不需要 Viewbox。 <Button Width="40" Height="40" ...> <Path Width="22" Height="22" Data="{Binding IconData, RelativeSource={RelativeSource AncestorType=UserControl}}" Fill="{StaticResource OnAccent}" Stretch="Uniform"/> </Button>

回答 1 投票 0

如何从文件夹wpf获取文件路径?

我遇到了一个问题,我正在开发一个 WPF 应用程序,其中有一个名为“帮助”的页面,其中有一个按钮 当用户单击此按钮时,我必须向用户提供 pdf 文件,这是我...

回答 9 投票 0

Fluxor 与 WPF

我有一个旧版 WPF 应用程序,已转换为 .NET 8。一切都运行良好,除了应用程序中的单例,它无法轻松传输到 Blazor 服务器应用程序。我本来可以...

回答 1 投票 0

WPF:命令被禁用

我有一个 WPF UserControl,其中包含一个带有 5 个按钮的工具栏。其中 4 个按钮的命令在父窗口中处理,但第五个按钮的命令由 UC 本身处理。它...

回答 2 投票 0

ResizeMode =“NoResize”和WindowStyle =“None”的WPF窗口不会掉落阴影

我在使用 WPF 中的窗口时遇到问题 如果我设置: 调整大小模式=“不调整大小” 窗口样式=“无” 窗户看起来是平坦的,没有圆形边框和下方的阴影。 是不是...

回答 1 投票 0

WPF C# GroupBox 控件

我目前需要使用组框获取文本框中的内容信息,这些文本框具有相同的前五个字符。我对 WPF C# 还很陌生,并且阅读了一些关于...的文章。

回答 1 投票 0

在 app.xaml 引用的资源字典中找不到 app.xaml 中的静态资源

我遇到了一种情况,我正在尝试解析资源字典中引用的数据模板中的可视组件,引用 app.xaml 标记的静态资源,请参阅示例 bel...

回答 1 投票 0

将拇指移动到单击的轨道位置并抬起 DragStart?

这是我的滑块: 这是我的滑块: <Slider x:Name="mySeekBar" IsMoveToPointEnabled="True" Thumb.DragStarted="seekBar_DragStarted" Thumb.DragDelta="seekBar_DragDelta" Thumb.DragCompleted="seekBar_DragCompleted" /> 基本上,当我单击/拖动/释放拇指时,一切都会按预期进行。我想,当我点击曲目时,: 将拇指移动到该点(因此拦截鼠标向下,并设置位置) 抬起 DragStart(因此它遵循拖动/释放流程,就像拖动拇指一样)。 我该怎么做?尝试过这些事件: MouseDown="seekBar_MouseDown" PreviewMouseDown="seekBar_PreviewMouseDown" 但他们在赛道上根本没有被发射。 我可以帮助解决问题的第一部分: “将拇指移动到单击的轨道的位置”滑块上的 PreviewMouseLeftButtonDown 对我来说很好用: private void _slider_PreviewMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { Point mousePosition = e.GetPosition(_slider); _slider.Value = mousePosition.X / _slider.ActualWidth * (_slider.Maximum - _slider.Minimum); } DragStart 是什么意思?什么预期行为? 抱歉立即回复(我没有足够的声誉来发表评论)

回答 1 投票 0

WPF 应用程序作为 Windows 部署共享的应用程序

我对 Windows 部署工作台相当陌生。我正在设置自己的部署共享,并且想将 WPF 应用程序添加到我的应用程序中。我有一台较旧的服务器,我可以在其中查看它们的情况...

回答 0 投票 0

INotifyPropertyChanged 不适用于 UserControl

[注意:这是来自专有代码,所以我重命名了变量、函数......我可能忘记了一些,请告诉我] 我使用组合框从列表中选择数据,以更新 SharedViewModel

回答 1 投票 0

C# WPF 点击随机按钮

我在 WPF 上有多个执行 Click 方法的按钮 我在 WPF 上有多个执行 Click 方法的按钮 <Grid Margin="0,0,490,170"> <Grid.RowDefinitions> <RowDefinition Height="0*"/> <RowDefinition Height="18*"/> <RowDefinition/> </Grid.RowDefinitions> <Button x:Name="button00" HorizontalAlignment="Left" Height="82" Margin="0,1,-114,-7" Grid.RowSpan="3" VerticalAlignment="Top" Width="114" Click="Button_Click"/> <Button x:Name="button02" Content="" HorizontalAlignment="Left" Height="82" Margin="228,0,-342,-7" Grid.RowSpan="3" VerticalAlignment="Bottom" Width="114" Click="Button_Click"/> <Button x:Name="button01" Content="" HorizontalAlignment="Left" Height="82" Margin="114,1,-228,-7" Grid.RowSpan="3" VerticalAlignment="Top" Width="114" Click="Button_Click" /> ... </Grid> 我的点击是这个 private void Button_Click(object sender, RoutedEventArgs e) { var button = sender as Button; methodDoingStuff(button); } 我尝试自动化计算机可以随机点击按钮。 像这样 Random rnd = new Random(); int x = rnd.Next(2); int y = rnd.Next(2); Button btn = new Button(); btn.Name = "button" +(x.ToString() + y.ToString()); Button_Click(btn); 但我似乎无法做到这一点。 有什么建议我可以做这样的事情吗? 试试这个: Button[] allButtons = grid.Children.OfType<Button>().ToArray(); Random rnd = new Random(); int x = rnd.Next(0, allButtons.Length); Button btn = allButtons[x]; btn.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent)); ...其中“网格”是 XAML 中 x:Name 的 Grid: <Grid x:Name="grid" Margin="0,0,490,170"> ... 尝试使用以下代码: Random rnd = new Random(); int x = 0; int y = rnd.Next(2); var buttonName = "button" + (x.ToString() + y.ToString()); var buttonControl = this.FindName(buttonName) as Button; if (buttonControl != null) { buttonControl.RaiseEvent(new RoutedEventArgs(Button.ClickEvent, buttonControl)); } 您可以创建一个包含对按钮的引用的对象列表。 List<Button> buttonList = new List<Button> {button00, button01, button02}; 然后做这样的事情: Random rnd = new Random(); int selection = rnd.Next(0, 3); buttonList[selection].RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent)); 我认为这应该可行: button00.Margin = new Thickness(rnd.Next((int)this.Width-(int)button00.Width),rnd.Next((int)this.Height-(int)button00.Height),0,0);

回答 4 投票 0

WPF - 如何使 ListBox 在 MVVM 中运行“选择时”功能? [Caliburn.Micro]

我正在制作一个统计绘图辅助程序。我是 WPF 的新手。 我已经有 2 个列表框: 简介列表 比赛文件夹列表 首先,我想从第一个中选择(选择)个人资料

回答 1 投票 0

为什么 MenuItem 标题前面有下划线?

如果您声明 MenuItems,我总是看到它们的 Header 属性声明如下: ...

回答 2 投票 0

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