xaml 相关问题

可扩展应用程序标记语言(XAML)是一种基于XML的声明式语言,用于在各种框架中初始化结构化值和对象。当问题是关于具有特定框架的XAML的使用时,还应该提供框架的标签,例如, [wpf](Windows Presentation Foundation),[silverlight],[windows-phone],[windows-store-apps](Windows 8商店应用),[win-universal-app],[xamarin.forms]或[工作流程 - 基础]

.NET MAUI 中的标题栏颜色错误有解决方法吗?

为什么标题栏会改变颜色?这个(可能的)错误有解决方法吗? 为了验证这是否可以重现,我创建了一个新的 .NET MAUI 项目。我已经添加了我的

回答 1 投票 0

.NET 8 Core WPF:DragMove() 仅适用于 TextBox,不适用于 Border

我有一个带有自定义标题栏的简单 WPF 窗口,但 DragMove() 仅适用于 TextBlock。如果我尝试将窗口拖动到标题旁边的空白区域,则不会发生任何事情...... 我有一个带有自定义标题栏的简单 WPF 窗口,但 DragMove() 仅适用于 TextBlock。如果我尝试将窗口拖动到标题旁边的空白区域,则不会发生任何事情...... <Window x:Class="WPFApplication.MainWindow" 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:WPFApplication" mc:Ignorable="d" ResizeMode="CanMinimize" WindowStartupLocation="CenterScreen" WindowStyle="None" AllowsTransparency="True" Background="#FFFFFFFF" Title="WPF Application" Height="460" Width="1040"> <Grid> <!-- Custom Title Bar --> <Border Height="40" VerticalAlignment="Top" x:Name="TitleBar" Panel.ZIndex="1"> <DockPanel> <!-- App Name and Icon bar --> <StackPanel Margin="10,0,0,0" Orientation="Horizontal" DockPanel.Dock="Left"> <TextBlock Text="WPF Application" VerticalAlignment="Center" FontSize="16"/> </StackPanel> <!-- Window Control Buttons --> <StackPanel Orientation="Horizontal" DockPanel.Dock="Right" HorizontalAlignment="Right"> <!-- Minimize Button --> <Button Width="40" Content="_" Click="MinimizeWindow" Background="Transparent"/> <!-- Maximize/Restore Button --> <Button Width="40" Content="▢" Click="MaximizeRestoreWindow" Background="Transparent"/> <!-- Close Button --> <Button Width="40" Content="X" Click="CloseWindow" Background="Transparent"/> </StackPanel> </DockPanel> </Border> <TextBlock Text="test" HorizontalAlignment="Center" VerticalAlignment="Center" /> </Grid> </Window> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); TitleBar.MouseDown += (sender, e) => { if (e.ButtonState == System.Windows.Input.MouseButtonState.Pressed) { // Call DragMove only if left mouse button is down this.DragMove(); } }; } private void MinimizeWindow(object sender, RoutedEventArgs e) { this.WindowState = WindowState.Minimized; } private void MaximizeRestoreWindow(object sender, RoutedEventArgs e) { if (this.WindowState == WindowState.Maximized) this.WindowState = WindowState.Normal; else this.WindowState = WindowState.Maximized; } private void CloseWindow(object sender, RoutedEventArgs e) { this.Close(); } } 谢谢@Sinatr!通过在 Background 元素上设置 Border 属性起作用。对于下一次 Google 搜索,现在我有了这个并且它正在工作 <Border Height="40" VerticalAlignment="Top" Background="{StaticResource ColorPrimary500}" x:Name="TitleBar" Panel.ZIndex="1">

回答 1 投票 0

<CollectionView.ItemSource>“未将对象引用设置为对象的实例。”

我正在遵循 James Montemagno 关于 .net Maui 的教程,我非常确定我遵循了他的代码,他的代码工作正常,但我的代码有错误。 主页.xaml 我正在关注 James Montemagno 关于 .net Maui 的教程,我非常确定我遵循了他的代码,他的代码工作正常,但我的代码有错误。 主页.xaml <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MauiApp1.MainPage"> <Grid RowDefinitions="100, Auto, *" ColumnDefinitions=".75*, .25*" Padding="10" RowSpacing="10" ColumnSpacing="10"> <Image Grid.ColumnSpan="2" Source="dotnet_bot.png" BackgroundColor="Orange"/> <Entry Placeholder="Enter Task" Grid.Row="1"/> <Button Text="Add" Grid.Row="1" Grid.Column="1"/> <CollectionView Grid.Row="2" Grid.ColumnSpan="2"> <CollectionView.ItemsSource> <x:Array Type="{x:Type x:String}"> <x:String>Apples</x:String> <x:String>Bananas</x:String> <x:String>Oranges</x:String> </x:Array> </CollectionView.ItemsSource> </CollectionView> </Grid> 主页.cs namespace MauiApp1 { public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); } } } 现在我的错误输出显示:System.NullReferenceException:“对象引用未设置为对象的实例。” 线程 24 已退出,代码为 0 (0x0)。 第 24 号线指向 <CollectionView.ItemsSource> 实际上代码中没有错误,我只是点击了 IDE 中的调试按钮而不是热重载按钮。但热重载时它应该显示变化,因为它仅在 .xaml 中而不是在 .cs 中

回答 1 投票 0

数据网格宽度 WinUI 3

我是WinUI 3的新手,我正在做一个数据网格来显示产品列表,当总宽度不是完整的数据网格宽度而是显示水平时,我想让数据网格列填充数据网格。 .

回答 1 投票 0

指定的演员无效(xamarin 表单)

这个完全相同的代码在一小时前运行得很好。 调整了一些东西,然后 ctrl+Z 回到这个状态 现在每次我在 Android 模拟器上运行它时,当我尝试加载...

回答 2 投票 0

DataBinding - 值通过 DataTemplate 不可见

我的 xaml 中有以下 DataTemplate: 我的 xaml 中有以下 DataTemplate: <DataGrid x:Name="ChecklistDataGrid" AutoGenerateColumns="False" HorizontalAlignment="Stretch" Foreground="White" VerticalAlignment="Stretch" Background="Transparent" RowBackground="Transparent" AlternatingRowBackground="Transparent" HorizontalGridLinesBrush="White" VerticalGridLinesBrush="White" CanUserAddRows="False" SelectionUnit="Cell"> <DataGrid.Resources> <!-- Custom Style for DataGridColumnHeader --> <Style TargetType="DataGridColumnHeader"> <Setter Property="Background" Value="Transparent"/> <Setter Property="BorderBrush" Value="Transparent"/> <Setter Property="Foreground" Value="White"/> </Style> <!-- DataTemplate for Buttons --> <DataTemplate x:Key="ButtonTemplate"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Button Content="IO" Background="Green" Click="IOButton_Click" HorizontalAlignment="Stretch" Grid.Column="0"/> <Button Content="NIO" Background="Red" Click="NIOButton_Click" HorizontalAlignment="Stretch" Grid.Column="1"/> <Button Content="NR" Background="DarkGray" Click="NRButton_Click" HorizontalAlignment="Stretch" Grid.Column="2"/> </Grid> </DataTemplate> <!-- DataTemplate for TextBox with NR Button --> <DataTemplate x:Key="TextBoxTemplate"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <TextBox Text="{Binding Pruefwert, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Background="White" HorizontalAlignment="Stretch" Grid.Column="0" Grid.ColumnSpan="2" TextChanged="TextBox_TextChanged"/> <Button Content="NR" Background="DarkGray" Click="NRButton_Click" HorizontalAlignment="Stretch" Grid.Column="2"/> </Grid> </DataTemplate> </DataGrid.Resources> <DataGrid.Columns> <DataGridTextColumn Header="Pruefpunkt" Binding="{Binding Pruefpunkt}" Width="1*"/> <!-- Wrapping Text Column --> <DataGridTemplateColumn Header="Content" Width="10*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Content}" TextWrapping="Wrap" Background="{Binding ContentBackground}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <!-- Conditional Column for Buttons or TextBox --> <DataGridTemplateColumn Header="Actions" Width="3*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <ContentControl> <ContentControl.Style> <Style TargetType="ContentControl"> <Style.Triggers> <DataTrigger Binding="{Binding Type}" Value="button"> <Setter Property="ContentTemplate" Value="{StaticResource ButtonTemplate}" /> </DataTrigger> <DataTrigger Binding="{Binding Type}" Value="text"> <Setter Property="ContentTemplate" Value="{StaticResource TextBoxTemplate}" /> </DataTrigger> </Style.Triggers> </Style> </ContentControl.Style> </ContentControl> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTextColumn Header="Pruefpunkt" Binding="{Binding Pruefwert}" Width="1*"/> </DataGrid.Columns> </DataGrid> 我遇到的问题是,Pruefwert 的值在文本框中不可见。对于数据模板文本框模板 我在末尾添加了一个额外的 DataGridTextColumn,具有相同的 DataBinding,这里的值是可见的,没有任何问题。所以数据模板肯定存在一些绑定问题。而且我没有收到任何绑定错误。 为了应用 DataTemplate,首先必须有某个要应用它的对象。对于 ContentTemplate,此对象将是 Content 属性的值。但你这个属性里什么都没有,它被设置为null。 参见示例: <StackPanel> <FrameworkElement.Resources> <DataTemplate x:Key="point.template" DataType="Point"> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding X}" Margin="5"/> <TextBlock Text="{Binding Y}" Margin="5"/> </StackPanel> </DataTemplate> </FrameworkElement.Resources> <FrameworkElement.DataContext> <Point X="123" Y="456"/> </FrameworkElement.DataContext> <ContentControl ContentTemplate="{DynamicResource point.template}"/> <ContentControl ContentTemplate="{DynamicResource point.template}" Content="{Binding}"/> </StackPanel>

回答 1 投票 0

(已解决)在 .net Maui 中实现 SkiaSharp 时出现 System.NotSupportedException 和 System.Reflection.TargetInitationException

您好,我正在 .net 8.0 Maui 上实现 skiasharp,并且不断收到 System.NotSupportedException 和 System.Reflection.TargetInvocationException。我试图理解为什么我不断收到...

回答 1 投票 0

根据值更改 DataGrid 单元格颜色

我有一个 WPF 数据网格,我想要根据值使用不同的单元格颜色。我的 xaml 上有以下代码 样式 TargetType="DataGridCell" 但不是选择一个单元格而是选择...

回答 10 投票 0

在 .net Maui 中实现 SkiaSharp 时出现 System.NotSupportedException 和 System.Reflection.TargetInitationException

您好,我正在 .net 8.0 Maui 上实现 skiasharp,并且不断收到 System.NotSupportedException 和 System.Reflection.TargetInitationException。我试图理解为什么我不断收到...

回答 1 投票 0

Windows 应用商店应用程序 AppContainerCheck 失败

当我尝试在 Windows 8.1 应用程序上运行应用程序认证测试时,出现以下错误。我环顾了一段时间,似乎找不到任何解决方案。该应用程序是用 C 编写的...

回答 1 投票 0

WPF 触发器和 VisualState 同时实现?

如何同时使用 Trigger IsSelected 和 VisualState MouseOver?如果未选择某个元素并将其悬停,我不想应用样式。 单独的触发器很简单: 如何同时使用 Trigger IsSelected 和 VisualState MouseOver?如果未选择某个元素并将其悬停,我不想应用样式。 单独触发器很简单: <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="True"> ... </Trigger> </ControlTemplate.Triggers> 仅 VisualStates 也是如此: <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="MouseOver"> <Storyboard> ... </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> 但是我该如何结合这些呢? 您可以在新的 VisualState x:Name="Selected" 中定义 VisualStateGroup x:Name="SelectedStates"。然后,因为每次控件只有来自每组的一个状态,所以 MouseOver 和 Selected 是彼此独立的。请参阅Mitesh Sureja 的博客。 <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="MouseOver"> <Storyboard> ... </Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="SelectedStates"> <VisualState x:Name="Selected"> <Storyboard> ... </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> 或者你可以按照克莱门斯的建议去做。请参阅视觉状态管理器与 WPF 中的触发器。 编辑 <Style.Triggers> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsSelected" Value="True" /> <Condition Property="IsMouseOver" Value="True" /> </MultiTrigger.Conditions> <Setter ... /> </MultiTrigger> </Style.Triggers> 刚刚遇到了类似的问题并最终来到这里,因此如果您需要一个适合我的用例的视觉状态解决方案。 根据您想要优先的顺序更改 MouseOver 和 Selected 的顺序。 <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualState x:Name="Normal" /> <VisualState x:Name="MouseOver"> <Storyboard> ... </Storyboard> </VisualState> <VisualState x:Name="Selected"> <Storyboard> ... </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> 问题是它仍然会同时触发鼠标悬停在单独的项目上并选择。

回答 2 投票 0

DataGridRowHeader IsPressed 事件不更改背景

我有一个 DataGridRowHeader 的自定义样式,并且 Trigger IsPressed 似乎没有触发。 IsMouseOver 工作正常。我基本上具有与 DataGridColumnHe 触发器相同的样式...

回答 1 投票 0

WPF。创建按钮模板:绑定模板元素的值

我已经工作了几天,尝试从我拥有的实现中完全创建按钮样式。我一直能完成大部分工作,但无法按照我需要的方式完全配置它......

回答 1 投票 0

类型 Universe 无法解析程序集:Uno.UI,版本=255.255.255.255

将 Uno.UI 升级到 3.11.6 后,我在编译项目时收到以下错误: 类型 Universe 无法解析程序集:Uno.UI、Version=255.255.255.255、Culture=neutral、PublicKeyToken=n...

回答 3 投票 0

一个 DataTemplate 中的多个 TreeViewItem

我正在努力处理 WinUI 应用程序中的 TreeView,我希望在单个 DataTemplate 中拥有多个 TreeViewItems。 我已经尝试了几件事,但我想我可以做一些像我......

回答 2 投票 0

如何更改 WinUI 3 中的设置导航菜单项文本?

我知道这听起来很简单,但我是 WinUI 3 的新手,我正在学习它。如您所知,关于它的文档和社区并不多,而且很难找到答案。 无论如何,我...

回答 1 投票 0

如何在scrollviewer中设置滚动条的粗细

如何控制作为 DataGrid 控件一部分显示在 / 中的水平或垂直滚动条的厚度? 我希望它们显示得比实际情况“更厚”

回答 1 投票 0

WinUI 更改了 NavigationView 内容背景

我正在尝试更改导航视图框架或内容的背景。 我将背景设置为Acrylic,NavigatioView中的Frame与...

回答 2 投票 0

使用 FlowDirection 将 .NET MAUI 弹出按钮向右移动?

如何使用 Shell 将 .NET MAUI Flyout 向右移动(例如使用 FlowDirection)? 我目前正在使用 .NET MAUI 开发一个应用程序,并且面临 Flyout 菜单的问题(Sideba...

回答 1 投票 0

.Net Maui CollectionView 所选项目未突出显示

我创建了一个类似于数据表的集合视图,除了所选项目突出显示外,一切正常。我尝试使用视觉状态管理器更改颜色,但仍然没有任何效果。我...

回答 1 投票 0

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