wpf 相关问题

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

ComboBox 选择返回 IndexOutofBounds 错误

我正在设置,第一个组合框(名称=组合3)的选择决定第二个组合框(名称=组合4)将显示的内容。这很好用。 现在我正在尝试制作第二个组合框

回答 4 投票 0

在 C# WPF 中禁用单个 DataGrid 单元

我需要基于布尔值禁用 DataGrid 单元格中的按钮。当我尝试下面的代码时,整行被禁用。 我尝试过的 <question vote="0"> <p>我需要基于布尔值禁用 DataGrid 单元格中的按钮。当我尝试下面的代码时,整行被禁用。</p> <p>我尝试过的事情</p> <pre><code> &lt;DataGrid.CellStyle&gt; &lt;Style TargetType=&#34;DataGridCell&#34;&gt; &lt;Style.Triggers&gt; &lt;DataTrigger Binding=&#34;{Binding Enabled}&#34; Value=&#34;false&#34;&gt; &lt;Setter Property=&#34;IsEnabled&#34; Value=&#34;False&#34;/&gt; &lt;/DataTrigger&gt; &lt;/Style.Triggers&gt; &lt;/Style&gt; &lt;/DataGrid.CellStyle&gt; </code></pre> <p>行中的按钮</p> <pre><code>&lt;DataGridTemplateColumn Header=&#34;Azione&#34; Width=&#34;3*&#34;&gt; &lt;DataGridTemplateColumn.CellTemplate&gt; &lt;DataTemplate&gt; &lt;Button Click=&#34;btnEffettuaOperazioni_Click&#34;&gt; &lt;TextBlock Text=&#34;Effettua operazioni&#34;/&gt; &lt;/Button&gt; &lt;/DataTemplate&gt; &lt;/DataGridTemplateColumn.CellTemplate&gt; &lt;/DataGridTemplateColumn&gt; </code></pre> </question> <answer tick="false" vote="0"> <p>这是一个工作示例。看一看 : 如果选中该复选框,则仅禁用该按钮</p> <p>主窗口.xaml</p> <pre><code>&lt;Window x:Class=&#34;TestWPF.MainWindow&#34; xmlns=&#34;http://schemas.microsoft.com/winfx/2006/xaml/presentation&#34; xmlns:x=&#34;http://schemas.microsoft.com/winfx/2006/xaml&#34; xmlns:d=&#34;http://schemas.microsoft.com/expression/blend/2008&#34; xmlns:mc=&#34;http://schemas.openxmlformats.org/markup-compatibility/2006&#34; xmlns:local=&#34;clr-namespace:TestWPF&#34; mc:Ignorable=&#34;d&#34; Title=&#34;MainWindow&#34; Height=&#34;450&#34; Width=&#34;800&#34; Loaded=&#34;Window_Loaded&#34;&gt; &lt;ScrollViewer&gt; &lt;DataGrid HorizontalAlignment=&#34;Stretch&#34; VerticalAlignment=&#34;Stretch&#34; AutoGenerateColumns=&#34;False&#34; ItemsSource=&#34;{Binding Items}&#34;&gt; &lt;DataGrid.Resources&gt; &lt;Style TargetType=&#34;{x:Type Button}&#34; x:Key=&#34;ButtonStyle&#34;&gt; &lt;Style.Triggers&gt; &lt;DataTrigger Binding=&#34;{Binding IsChecked}&#34; Value=&#34;True&#34;&gt; &lt;Setter Property=&#34;IsEnabled&#34; Value=&#34;False&#34; /&gt; &lt;/DataTrigger&gt; &lt;/Style.Triggers&gt; &lt;/Style&gt; &lt;/DataGrid.Resources&gt; &lt;DataGrid.Columns&gt; &lt;DataGridCheckBoxColumn Binding=&#34;{Binding IsChecked}&#34; /&gt; &lt;DataGridTextColumn Binding=&#34;{Binding Value}&#34; /&gt; &lt;DataGridTemplateColumn Header=&#34;Azione&#34; Width=&#34;3*&#34; &gt; &lt;DataGridTemplateColumn.CellTemplate&gt; &lt;DataTemplate &gt; &lt;Button Click=&#34;btnEffettuaOperazioni_Click&#34; Style=&#34;{StaticResource ButtonStyle}&#34;&gt; &lt;TextBlock Text=&#34;Effettua operazioni&#34;/&gt; &lt;/Button&gt; &lt;/DataTemplate&gt; &lt;/DataGridTemplateColumn.CellTemplate&gt; &lt;/DataGridTemplateColumn&gt; &lt;/DataGrid.Columns&gt; &lt;/DataGrid&gt; &lt;/ScrollViewer&gt; </code></pre> <p>MainWindow.xaml.cs</p> <pre><code>using System.Collections.ObjectModel; using System.Windows; namespace TestWPF { /// &lt;summary&gt; /// Interaction logic for MainWindow.xaml /// &lt;/summary&gt; public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DataContext = this; } public class Data { public bool IsChecked { get; set; } public string Value { get; set; } } public ObservableCollection&lt;Data&gt; Items { get; } = new ObservableCollection&lt;Data&gt;(); private void Populate() { Items.Add(new Data() { IsChecked = true, Value = &#34;Lorem Ipsum&#34; }); Items.Add(new Data() { IsChecked = true, Value = &#34;Lorem Ipsum&#34; }); Items.Add(new Data() { IsChecked = true, Value = &#34;Lorem Ipsum&#34; }); Items.Add(new Data() { IsChecked = true, Value = &#34;Lorem Ipsum&#34; }); Items.Add(new Data() { IsChecked = true, Value = &#34;Lorem Ipsum&#34; }); Items.Add(new Data() { IsChecked = true, Value = &#34;Lorem Ipsum&#34; }); Items.Add(new Data() { IsChecked = true, Value = &#34;Lorem Ipsum&#34; }); } private void Window_Loaded(object sender, RoutedEventArgs e) { Populate(); } private void btnEffettuaOperazioni_Click(object sender, RoutedEventArgs e) { MessageBox.Show(&#34;Hello World&#34;); } } } </code></pre> </answer> </body></html>

回答 0 投票 0

在WPF中获取海康威视摄像头视图

我有一台海康威视摄像头。我需要在我的应用程序中从该相机获取图像。所有SDK示例都是用winform制作的,我正在尝试将其集成到wpf中。在给出的示例 SDK 中,图片...

回答 1 投票 0

如何防止Excel在使用SetParent嵌入时失去焦点?

我正在尝试将 Excel 嵌入到 WPF 应用程序中。我已经拥有了工作所需的所有内容,除了现在我试图允许 .xlsm 文件。当单击 ActiveX 控件时,看起来就像...

回答 1 投票 0

项目名称中的句点似乎破坏了wpf图像源

我有一个针对 Net Core 8 的 wpf 项目,其命名约定如下: myapp.test.shell myapp.test.core 我想使用核心项目来存储我的图像,以便从

回答 1 投票 0

Powershell + WPF - TreeListView 分层复选框

我有一个问题。我需要创建带有复选框的动态创建的 TreeListView 。我已经有了,但我需要做的是,当选择父节点时,自动选择所有子节点。怎么...

回答 1 投票 0

如何设置<Linebreak />

有人知道如何设置内的高度吗?我尝试更改 TextBlock 的字体大小,但这对我没有帮助。 更新 我需要减少它,而不是增加......

回答 4 投票 0

WPF UserControl 库在另一个项目中使用时不包含依赖项

我在VS中创建了一个空白解决方案,添加了一个“src”文件夹,然后将一个WPF用户控件(框架)项目添加到该文件夹(“WpfWorkspace”)。框架版本 4.7.2。 我是德西...

回答 1 投票 0

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”是项目类的属性。

回答 1 投票 0

如何在 XAML 中指定 DataGrid 的 ItemsSource 类型?

我将 DataGrid 绑定到 ICollectionView,以便可以有效地过滤 ItemsSource,但 ICollectionView 不是泛型类型(如 CollectionView) - 它是 List 类型<

回答 3 投票 0

如何在 .Net WPF 应用程序中使用 Serilog 自动跟踪(删除)旧日志?

我在 .Net WPF 应用程序中使用 Serliog。 有没有一种方法可以让我在日志文件超过 N 天时自动“尾随”(删除)日志文件?

回答 3 投票 0

将 .csproj 文件转换为 WPF 项目的 SDK 样式时出现 .NET 升级助手错误(.NET Framework 4.8 -> .NET 6.0)

我尝试使用 .NET Upgrade Assistant 将 WPF 项目从 .NET 4.8 更新到 .NET 6.0。当我尝试对WPF项目进行并行升级时,升级助手出现此错误

回答 1 投票 0

如何从C#代码访问全局样式的元素?

我想对文本框使用全局样式,如果单击按钮时文本框为空,则更改文本框的颜色。到目前为止我已经写了这些: 应用程序.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); }

回答 1 投票 0

IComponentConnector.Connect(int, object)' 多次显式实现。 WPF

我正在开发一个 WPF 项目,刚刚遇到一个奇怪的错误,我的代码运行得很好,但有 16 个错误,格式为 2: IComponentConnector.Connect(int, object)' 是明确的

回答 4 投票 0

使用页面加载另一个线程,以防止在 WPF 中渲染内容时 UI 冻结

我是 WPF 和 C# 新手,我遇到了这个问题,我有一个加载微调器和一个在框架内加载新页面的按钮。 我想要的是将微调器渲染在框架顶部,然后加载 Pa...

回答 1 投票 0

只有两个用户收到错误“...dll 的计算哈希值与清单中指定的不同”

我的 WPF 应用程序无法为两个新用户启动。它是 ClickOnce 部署的,并从公司网络运行(未安装)。错误是“WPF.Themes.dll 的计算哈希值与

回答 1 投票 0

创建 BitmapImage 抛出缺少键异常

我有一个视图,显示图像及其标题和旁边的评论。 当我加载现有图像时,我使用以下代码: this.ArtifactIdentity = image.ArtifactIdentity; t...

回答 3 投票 0

将前景色和工具提示绑定到 DataGrid

我有一个 DataGrid - 有 一个隐藏列 (SubjectFull) 和一个名为“Subject”的最多 60 个主题的可见列。 名为“未读”的专栏 - 这是一张图像,如果它...

回答 1 投票 0

将一个对象分配给另一个对象不会引发 WPF 中的 PropertyChanged 事件

我尝试在一个非常简单(且有效)的项目中隔离我的问题。假设我有一个包含 2 个字段的简单模型,并且我已经配置了其属性和 PropertyChanged 事件。这是一个

回答 1 投票 0

屏蔽文本框中的输入

任务是“创建一个带有显示或隐藏密码选项的密码输入字段”。没有安全要求,因此可以使用字符串类型来处理密码。 在妈妈那里...

wpf
回答 1 投票 0

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