Windows Presentation Foundation或WPF是用于在基于Windows的应用程序中呈现用户界面的子系统。
我正在尝试将 Excel 嵌入到 WPF 应用程序中。我已经拥有了工作所需的所有内容,除了现在我试图允许 .xlsm 文件。当单击 ActiveX 控件时,看起来就像...
我有一个针对 Net Core 8 的 wpf 项目,其命名约定如下: myapp.test.shell myapp.test.core 我想使用核心项目来存储我的图像,以便从
Powershell + WPF - TreeListView 分层复选框
我有一个问题。我需要创建带有复选框的动态创建的 TreeListView 。我已经有了,但我需要做的是,当选择父节点时,自动选择所有子节点。怎么...
有人知道如何设置内的高度吗?我尝试更改 TextBlock 的字体大小,但这对我没有帮助。 更新 我需要减少它,而不是增加......
WPF UserControl 库在另一个项目中使用时不包含依赖项
我在VS中创建了一个空白解决方案,添加了一个“src”文件夹,然后将一个WPF用户控件(框架)项目添加到该文件夹(“WpfWorkspace”)。框架版本 4.7.2。 我是德西...
DataGridComboBoxColumn 中的绑定不起作用
为什么会这样: 为什么会这样: <DataGridComboBoxColumn Header="Format" SelectedItemBinding="{Binding Format, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding Source={StaticResource with formatenumvalues}}" IsReadOnly="False"/> 这也是它的工作原理: <DataGridTemplateColumn Header="Category"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <ComboBox ItemsSource="{Binding CategoryList, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding Category, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"> </ComboBox> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> 但不是这样的: <DataGridComboBoxColumn Header="Category" SelectedItemBinding="{Binding Category, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ItemsSource="{Binding CategoryList, UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False"/> DataGridComboBoxColumn 只能使用静态资源还是还有其他问题? 这里的categoryList是ObservableCollection,Category是一个常规字符串。 我尝试过神经网络提供的各种绑定选项。我也尝试找到类似的解决方案,但没有一个有帮助。 以下代码正在运行: <DataGridComboBoxColumn SelectedValueBinding="{Binding Category, UpdateSourceTrigger=PropertyChanged}"> <DataGridComboBoxColumn.ElementStyle> <Style TargetType="{x:Type ComboBox}"> <Setter Property="ItemsSource" Value="{Binding CategoryList}"/> <Setter Property="VerticalAlignment" Value="Center"/> </Style> </DataGridComboBoxColumn.ElementStyle> <DataGridComboBoxColumn.EditingElementStyle> <Style TargetType="{x:Type ComboBox}"> <Setter Property="ItemsSource" Value="{Binding CategoryList}"/> <Setter Property="VerticalAlignment" Value="Center"/> </Style> </DataGridComboBoxColumn.EditingElementStyle> </DataGridComboBoxColumn> “Category”和“CategoryList”是项目类的属性。
如何在 XAML 中指定 DataGrid 的 ItemsSource 类型?
我将 DataGrid 绑定到 ICollectionView,以便可以有效地过滤 ItemsSource,但 ICollectionView 不是泛型类型(如 CollectionView) - 它是 List 类型<
如何在 .Net WPF 应用程序中使用 Serilog 自动跟踪(删除)旧日志?
我在 .Net WPF 应用程序中使用 Serliog。 有没有一种方法可以让我在日志文件超过 N 天时自动“尾随”(删除)日志文件?
将 .csproj 文件转换为 WPF 项目的 SDK 样式时出现 .NET 升级助手错误(.NET Framework 4.8 -> .NET 6.0)
我尝试使用 .NET Upgrade Assistant 将 WPF 项目从 .NET 4.8 更新到 .NET 6.0。当我尝试对WPF项目进行并行升级时,升级助手出现此错误
我想对文本框使用全局样式,如果单击按钮时文本框为空,则更改文本框的颜色。到目前为止我已经写了这些: 应用程序.xaml 我想对文本框使用全局样式,如果单击按钮时文本框为空,则更改文本框的颜色。到目前为止我已经写了这些: 应用程序.xaml <Application x:Class="MVPInterface.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:MVPInterface" StartupUri="TheTestWindow.xaml"> <Application.Resources> <ResourceDictionary> <Style x:Key="NameTextField" TargetType="TextBox"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TextBox}"> <TextBox BorderThickness="0,0,0,3" Background="White"> <TextBox.BorderBrush> <SolidColorBrush x:Name="NameFieldColor" Color="#FFC3C3C3"/> </TextBox.BorderBrush> </TextBox> <ControlTemplate.Resources> <Storyboard x:Key="gotFocusTimeline"> <ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="NameFieldColor" Storyboard.TargetProperty="(SolidColorBrush.Color)"> <LinearColorKeyFrame KeyTime="00:00:00.30" Value="#ff007fc7"/> </ColorAnimationUsingKeyFrames> </Storyboard> <Storyboard x:Key="lostFocusTimeline"> <ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="NameFieldColor" Storyboard.TargetProperty="(SolidColorBrush.Color)"> <LinearColorKeyFrame KeyTime="00:00:00.30" Value="#FFC3C3C3"/> </ColorAnimationUsingKeyFrames> </Storyboard> </ControlTemplate.Resources> <ControlTemplate.Triggers> <EventTrigger RoutedEvent="GotFocus"> <BeginStoryboard Storyboard="{StaticResource gotFocusTimeline}"/> </EventTrigger> <EventTrigger RoutedEvent="LostFocus"> <BeginStoryboard Storyboard="{StaticResource lostFocusTimeline}"/> </EventTrigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </ResourceDictionary> </Application.Resources> </Application> TheTestWindow.xaml <Window x:Class="MVPInterface.TheTestWindow" 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:local="clr-namespace:MVPInterface" mc:Ignorable="d" Title="The Screen" Height="1080" Width="1920" AllowsTransparency="True" WindowStyle="None" Background="{x:Null}" ResizeMode="CanMinimize" WindowState="Maximized"> <Border Name="theWindow" CornerRadius="10" Background="Azure" BorderBrush="Gray" BorderThickness="3" ScrollViewer.VerticalScrollBarVisibility="Disabled" Focusable="True"> <Grid> <TextBox Grid.Row="2" Name="myTextbox" Text="Tester" MinWidth="100" Width="320" Background="White" GotFocus="OnGotFocusBox" LostFocus="OnLostFocusBox" HorizontalAlignment="Center" VerticalAlignment="Center" Style="{StaticResource NameTextField}"/> <Button Grid.Row="2" Name="mySubmitButton" Width="100" Height="25" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,120,0,0" Click="TestClick" Style="{StaticResource GrayDefaultButtonStyle}"> </Grid> </Border> </Window> TheTestWindow.xaml.cs using System; using System.Collections.Generic; using System.Linq; using System.Security.AccessControl; using System.Text; using System.Windows; using System.Windows.Controls; namespace MVPInterface { public partial class TheTestWindow : Window { Color fieldGray = Color.FromArgb(255, 195, 195, 195); Color fieldBlue = Color.FromArgb(255, 0, 127, 199); Color fieldPurple = Color.FromArgb(255, 126, 42, 144); public TheTestWindow() { InitializeComponent(); } private void TestClick(object sender, RoutedEventArgs e) { if (myTextbox.Text == null || myTextbox.Text.Text == "" || myTextbox.Text.Text[0].Equals(" ")) { ColorAnimation colorAnimationError = new ColorAnimation(fieldPurple, TimeSpan.FromSeconds(0.3)); NameFieldColor.BeginAnimation(SolidColorBrush.ColorProperty, colorAnimationError); } private void MouseDrag(object sender, MouseButtonEventArgs e) { try { DragMove(); } catch(Exception) { MessageBox.Show("An exception ocurred..."); } } private void WindowClicked(object sender, MouseButtonEventArgs e) { theWindow.Focus(); } 但是,我看到一个错误,告诉我 TheTestWindow.xaml.cs 中的 NameFieldColor 不存在。我想知道如何从我的后台代码TheTestWindow.xaml.cs访问我在App.xaml中定义的NameFieldColor。 奖金: 我还有一件事很好奇:将按钮的样式设置为全局样式后,为什么我不能使用 content 在按钮上显示文本?如果我想在多个按钮上使用这种样式,每个按钮内部应该有不同的文本,我该如何实现呢? TextBox 的 ControlTemplate 中的 TextBox 没有意义。应该有一个带有 <ScrollViewer x:Name="PART_ContentHost"/> 子元素的边框。 但是,您的 Style 根本不需要 ControlTemplate。这应该足够了: <Application.Resources> <Style x:Key="NameTextField" TargetType="TextBox"> <Setter Property="BorderBrush" Value="#C3C3C3"/> <Setter Property="BorderThickness" Value="2"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="TextBox"> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> <ScrollViewer x:Name="PART_ContentHost"/> </Border> </ControlTemplate> </Setter.Value> </Setter> <Style.Triggers> <Trigger Property="IsFocused" Value="True"> <Setter Property="BorderBrush" Value="#007FC7"/> </Trigger> </Style.Triggers> </Style> </Application.Resources> 由于此类全局 Style 的元素无法进行动画处理,因此当您想要启动“错误边框”动画时,必须临时设置一个新的 BorderBrush: if (string.IsNullOrWhiteSpace(myTextbox.Text)) { var colorAnimationError = new ColorAnimation( fieldPurple, TimeSpan.FromSeconds(0.3)); var borderBrush = myTextbox.BorderBrush.Clone(); myTextbox.SetCurrentValue(TextBox.BorderBrushProperty, borderBrush); borderBrush.BeginAnimation(SolidColorBrush.ColorProperty, colorAnimationError); }
IComponentConnector.Connect(int, object)' 多次显式实现。 WPF
我正在开发一个 WPF 项目,刚刚遇到一个奇怪的错误,我的代码运行得很好,但有 16 个错误,格式为 2: IComponentConnector.Connect(int, object)' 是明确的
使用页面加载另一个线程,以防止在 WPF 中渲染内容时 UI 冻结
我是 WPF 和 C# 新手,我遇到了这个问题,我有一个加载微调器和一个在框架内加载新页面的按钮。 我想要的是将微调器渲染在框架顶部,然后加载 Pa...
只有两个用户收到错误“...dll 的计算哈希值与清单中指定的不同”
我的 WPF 应用程序无法为两个新用户启动。它是 ClickOnce 部署的,并从公司网络运行(未安装)。错误是“WPF.Themes.dll 的计算哈希值与
我有一个视图,显示图像及其标题和旁边的评论。 当我加载现有图像时,我使用以下代码: this.ArtifactIdentity = image.ArtifactIdentity; t...
我有一个 DataGrid - 有 一个隐藏列 (SubjectFull) 和一个名为“Subject”的最多 60 个主题的可见列。 名为“未读”的专栏 - 这是一张图像,如果它...
将一个对象分配给另一个对象不会引发 WPF 中的 PropertyChanged 事件
我尝试在一个非常简单(且有效)的项目中隔离我的问题。假设我有一个包含 2 个字段的简单模型,并且我已经配置了其属性和 PropertyChanged 事件。这是一个
如何绑定到另一个视图的DataContext ViewModel?
我想使用来自另一个文本框(B)的值验证在文本框(A)中输入的数字。在验证中检查该值是否 a) 在恒定值范围内 (-> &qu...
WPF Windows 初始化正在锁定 .Net 8 中的分离线程
我在 .Net Framework 4.8 中使用了以下代码多年,用于在启动时显示启动屏幕: 线程 newWindowThread = 新线程(new ThreadStart(() => { ...