fix: remove MinHeight & fix TagInput Foreground.

This commit is contained in:
Zhang Dian
2025-09-16 19:03:58 +08:00
parent 13008225c0
commit 68cdd4609f
4 changed files with 17 additions and 19 deletions

View File

@@ -8,10 +8,10 @@
x:DataType="vm:MultiAutoCompleteBoxDemoViewModel" x:DataType="vm:MultiAutoCompleteBoxDemoViewModel"
x:Class="Ursa.Demo.Pages.MultiAutoCompleteBoxDemo"> x:Class="Ursa.Demo.Pages.MultiAutoCompleteBoxDemo">
<StackPanel Spacing="20"> <StackPanel Spacing="20">
<TextBlock Text="Multi-AutoCompleteBox"/> <TextBlock Text="Multi-AutoCompleteBox" />
<u:MultiAutoCompleteBox ItemsSource="{Binding Items}" <u:MultiAutoCompleteBox ItemsSource="{Binding Items}"
SelectedItems="{Binding SelectedItems}" SelectedItems="{Binding SelectedItems}"
ItemFilter="{Binding FilterPredicate }" ItemFilter="{Binding FilterPredicate}"
FilterMode="Custom"> FilterMode="Custom">
<u:MultiAutoCompleteBox.ItemTemplate> <u:MultiAutoCompleteBox.ItemTemplate>
<DataTemplate DataType="vm:ControlData"> <DataTemplate DataType="vm:ControlData">
@@ -30,4 +30,4 @@
</u:MultiAutoCompleteBox.SelectedItemTemplate> </u:MultiAutoCompleteBox.SelectedItemTemplate>
</u:MultiAutoCompleteBox> </u:MultiAutoCompleteBox>
</StackPanel> </StackPanel>
</UserControl> </UserControl>

View File

@@ -1,11 +1,11 @@
using System.Collections.Generic; using System;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using Avalonia.Controls; using Avalonia.Controls;
using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.ComponentModel;
namespace Ursa.Demo.ViewModels; namespace Ursa.Demo.ViewModels;
public class MultiAutoCompleteBoxDemoViewModel: ObservableObject public class MultiAutoCompleteBoxDemoViewModel : ObservableObject
{ {
public ObservableCollection<ControlData> Items { get; set; } public ObservableCollection<ControlData> Items { get; set; }
public ObservableCollection<ControlData> SelectedItems { get; set; } public ObservableCollection<ControlData> SelectedItems { get; set; }
@@ -36,7 +36,7 @@ public class MultiAutoCompleteBoxDemoViewModel: ObservableObject
new() { MenuHeader = "TagInput", Chinese = "标签输入" }, new() { MenuHeader = "TagInput", Chinese = "标签输入" },
new() { MenuHeader = "Theme Toggler", Chinese = "主题切换" }, new() { MenuHeader = "Theme Toggler", Chinese = "主题切换" },
new() { MenuHeader = "TreeComboBox", Chinese = "树形组合框" }, new() { MenuHeader = "TreeComboBox", Chinese = "树形组合框" },
new() { MenuHeader = "Dialog", Chinese = "对话框" }, new() { MenuHeader = "Dialog", Chinese = "对话框" },
new() { MenuHeader = "Drawer", Chinese = "抽屉" }, new() { MenuHeader = "Drawer", Chinese = "抽屉" },
new() { MenuHeader = "Loading", Chinese = "加载" }, new() { MenuHeader = "Loading", Chinese = "加载" },
@@ -45,7 +45,7 @@ public class MultiAutoCompleteBoxDemoViewModel: ObservableObject
new() { MenuHeader = "PopConfirm", Chinese = "气泡确认" }, new() { MenuHeader = "PopConfirm", Chinese = "气泡确认" },
new() { MenuHeader = "Toast", Chinese = "吐司" }, new() { MenuHeader = "Toast", Chinese = "吐司" },
new() { MenuHeader = "Skeleton", Chinese = "骨架屏" }, new() { MenuHeader = "Skeleton", Chinese = "骨架屏" },
new() { MenuHeader = "Date Picker", Chinese = "日期选择器" }, new() { MenuHeader = "Date Picker", Chinese = "日期选择器" },
new() { MenuHeader = "Date Range Picker", Chinese = "日期范围选择器" }, new() { MenuHeader = "Date Range Picker", Chinese = "日期范围选择器" },
new() { MenuHeader = "Date Time Picker", Chinese = "日期时间选择器" }, new() { MenuHeader = "Date Time Picker", Chinese = "日期时间选择器" },
@@ -53,13 +53,13 @@ public class MultiAutoCompleteBoxDemoViewModel: ObservableObject
new() { MenuHeader = "Time Picker", Chinese = "时间选择器" }, new() { MenuHeader = "Time Picker", Chinese = "时间选择器" },
new() { MenuHeader = "Time Range Picker", Chinese = "时间范围选择器" }, new() { MenuHeader = "Time Range Picker", Chinese = "时间范围选择器" },
new() { MenuHeader = "Clock", Chinese = "时钟" }, new() { MenuHeader = "Clock", Chinese = "时钟" },
new() { MenuHeader = "Anchor", Chinese = "锚点" }, new() { MenuHeader = "Anchor", Chinese = "锚点" },
new() { MenuHeader = "Breadcrumb", Chinese = "面包屑" }, new() { MenuHeader = "Breadcrumb", Chinese = "面包屑" },
new() { MenuHeader = "Nav Menu", Chinese = "导航菜单" }, new() { MenuHeader = "Nav Menu", Chinese = "导航菜单" },
new() { MenuHeader = "Pagination", Chinese = "分页" }, new() { MenuHeader = "Pagination", Chinese = "分页" },
new() { MenuHeader = "ToolBar", Chinese = "工具栏" }, new() { MenuHeader = "ToolBar", Chinese = "工具栏" },
new() { MenuHeader = "AspectRatioLayout", Chinese = "宽高比布局" }, new() { MenuHeader = "AspectRatioLayout", Chinese = "宽高比布局" },
new() { MenuHeader = "Avatar", Chinese = "头像" }, new() { MenuHeader = "Avatar", Chinese = "头像" },
new() { MenuHeader = "Badge", Chinese = "徽章" }, new() { MenuHeader = "Badge", Chinese = "徽章" },
@@ -82,7 +82,7 @@ public class MultiAutoCompleteBoxDemoViewModel: ObservableObject
{ {
if (text is null) return true; if (text is null) return true;
if (data is not ControlData control) return false; if (data is not ControlData control) return false;
return control.MenuHeader.Contains(text )|| control.Chinese.Contains(text); return control.MenuHeader.Contains(text, StringComparison.OrdinalIgnoreCase) || control.Chinese.Contains(text, StringComparison.OrdinalIgnoreCase);
} }
} }

View File

@@ -1,33 +1,31 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" <ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:u="https://irihi.tech/ursa"> xmlns:u="https://irihi.tech/ursa">
<!-- Add Resources Here -->
<ControlTheme x:Key="{x:Type u:MultiAutoCompleteBox}" TargetType="u:MultiAutoCompleteBox"> <ControlTheme x:Key="{x:Type u:MultiAutoCompleteBox}" TargetType="u:MultiAutoCompleteBox">
<Setter Property="MinHeight" Value="{DynamicResource AutoCompleteBoxDefaultHeight}" /> <Setter Property="MinHeight" Value="{DynamicResource AutoCompleteBoxDefaultHeight}" />
<Setter Property="MaxDropDownHeight" Value="{DynamicResource AutoCompleteMaxDropdownHeight}" /> <Setter Property="MaxDropDownHeight" Value="{DynamicResource AutoCompleteMaxDropdownHeight}" />
<Setter Property="CornerRadius" Value="{DynamicResource TextBoxDefaultCornerRadius}"></Setter> <Setter Property="CornerRadius" Value="{DynamicResource TextBoxDefaultCornerRadius}" />
<Setter Property="Template"> <Setter Property="Template">
<ControlTemplate TargetType="u:MultiAutoCompleteBox"> <ControlTemplate TargetType="u:MultiAutoCompleteBox">
<Panel> <Panel>
<Border <Border
Name="PART_RootBorder" Name="PART_RootBorder"
MinHeight="30"
Padding="{DynamicResource TextBoxContentPadding}" Padding="{DynamicResource TextBoxContentPadding}"
VerticalAlignment="Stretch" VerticalAlignment="Stretch"
CornerRadius="{TemplateBinding CornerRadius}" CornerRadius="{TemplateBinding CornerRadius}"
Background="{DynamicResource TextBoxDefaultBackground}" Background="{DynamicResource TextBoxDefaultBackground}"
BorderBrush="{DynamicResource TextBoxDefaultBorderBrush}"> BorderBrush="{DynamicResource TextBoxDefaultBorderBrush}">
<u:MultiComboBoxSelectedItemList <u:MultiComboBoxSelectedItemList
Name="{x:Static u:MultiAutoCompleteBox.PART_SelectedItemsControl}" Name="{x:Static u:MultiAutoCompleteBox.PART_SelectedItemsControl}"
VerticalAlignment="Center" VerticalAlignment="Center"
RemoveCommand="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Remove}" RemoveCommand="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Remove}"
ItemTemplate="{TemplateBinding SelectedItemTemplate}" ItemTemplate="{TemplateBinding SelectedItemTemplate}"
ItemsSource="{TemplateBinding SelectedItems}" > ItemsSource="{TemplateBinding SelectedItems}">
<u:MultiComboBoxSelectedItemList.ItemsPanel> <u:MultiComboBoxSelectedItemList.ItemsPanel>
<ItemsPanelTemplate> <ItemsPanelTemplate>
<u:WrapPanelWithTrailingItem> <u:WrapPanelWithTrailingItem>
<u:WrapPanelWithTrailingItem.TrailingItem> <u:WrapPanelWithTrailingItem.TrailingItem>
<TextBox VerticalAlignment="Center" Theme="{DynamicResource TagInputTextBoxTheme}"/> <TextBox VerticalAlignment="Center" Theme="{DynamicResource TagInputTextBoxTheme}" />
</u:WrapPanelWithTrailingItem.TrailingItem> </u:WrapPanelWithTrailingItem.TrailingItem>
</u:WrapPanelWithTrailingItem> </u:WrapPanelWithTrailingItem>
</ItemsPanelTemplate> </ItemsPanelTemplate>
@@ -61,4 +59,4 @@
</ControlTemplate> </ControlTemplate>
</Setter> </Setter>
</ControlTheme> </ControlTheme>
</ResourceDictionary> </ResourceDictionary>

View File

@@ -63,7 +63,7 @@
</ControlTheme> </ControlTheme>
<ControlTheme x:Key="TagInputTextBoxTheme" TargetType="TextBox"> <ControlTheme x:Key="TagInputTextBoxTheme" TargetType="TextBox">
<Setter Property="Foreground" Value="{DynamicResource TextBoxInnerForeground}" /> <Setter Property="Foreground" Value="{DynamicResource TextBoxForeground}" />
<Setter Property="Background" Value="{DynamicResource TextBoxDefaultBackground}" /> <Setter Property="Background" Value="{DynamicResource TextBoxDefaultBackground}" />
<Setter Property="BorderBrush" Value="{DynamicResource TextBoxDefaultBorderBrush}" /> <Setter Property="BorderBrush" Value="{DynamicResource TextBoxDefaultBorderBrush}" />
<Setter Property="SelectionBrush" Value="{DynamicResource TextBoxSelectionBackground}" /> <Setter Property="SelectionBrush" Value="{DynamicResource TextBoxSelectionBackground}" />