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

View File

@@ -1,11 +1,11 @@
using System.Collections.Generic;
using System;
using System.Collections.ObjectModel;
using Avalonia.Controls;
using CommunityToolkit.Mvvm.ComponentModel;
namespace Ursa.Demo.ViewModels;
public class MultiAutoCompleteBoxDemoViewModel: ObservableObject
public class MultiAutoCompleteBoxDemoViewModel : ObservableObject
{
public ObservableCollection<ControlData> Items { get; set; }
public ObservableCollection<ControlData> SelectedItems { get; set; }
@@ -36,7 +36,7 @@ public class MultiAutoCompleteBoxDemoViewModel: ObservableObject
new() { MenuHeader = "TagInput", Chinese = "标签输入" },
new() { MenuHeader = "Theme Toggler", Chinese = "主题切换" },
new() { MenuHeader = "TreeComboBox", Chinese = "树形组合框" },
new() { MenuHeader = "Dialog", Chinese = "对话框" },
new() { MenuHeader = "Drawer", Chinese = "抽屉" },
new() { MenuHeader = "Loading", Chinese = "加载" },
@@ -45,7 +45,7 @@ public class MultiAutoCompleteBoxDemoViewModel: ObservableObject
new() { MenuHeader = "PopConfirm", Chinese = "气泡确认" },
new() { MenuHeader = "Toast", Chinese = "吐司" },
new() { MenuHeader = "Skeleton", Chinese = "骨架屏" },
new() { MenuHeader = "Date Picker", Chinese = "日期选择器" },
new() { MenuHeader = "Date Range Picker", Chinese = "日期范围选择器" },
new() { MenuHeader = "Date Time Picker", Chinese = "日期时间选择器" },
@@ -53,13 +53,13 @@ public class MultiAutoCompleteBoxDemoViewModel: ObservableObject
new() { MenuHeader = "Time Picker", Chinese = "时间选择器" },
new() { MenuHeader = "Time Range Picker", Chinese = "时间范围选择器" },
new() { MenuHeader = "Clock", Chinese = "时钟" },
new() { MenuHeader = "Anchor", Chinese = "锚点" },
new() { MenuHeader = "Breadcrumb", Chinese = "面包屑" },
new() { MenuHeader = "Nav Menu", Chinese = "导航菜单" },
new() { MenuHeader = "Pagination", Chinese = "分页" },
new() { MenuHeader = "ToolBar", Chinese = "工具栏" },
new() { MenuHeader = "AspectRatioLayout", Chinese = "宽高比布局" },
new() { MenuHeader = "Avatar", Chinese = "头像" },
new() { MenuHeader = "Badge", Chinese = "徽章" },
@@ -82,7 +82,7 @@ public class MultiAutoCompleteBoxDemoViewModel: ObservableObject
{
if (text is null) return true;
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"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:u="https://irihi.tech/ursa">
<!-- Add Resources Here -->
<ControlTheme x:Key="{x:Type u:MultiAutoCompleteBox}" TargetType="u:MultiAutoCompleteBox">
<Setter Property="MinHeight" Value="{DynamicResource AutoCompleteBoxDefaultHeight}" />
<Setter Property="MaxDropDownHeight" Value="{DynamicResource AutoCompleteMaxDropdownHeight}" />
<Setter Property="CornerRadius" Value="{DynamicResource TextBoxDefaultCornerRadius}"></Setter>
<Setter Property="CornerRadius" Value="{DynamicResource TextBoxDefaultCornerRadius}" />
<Setter Property="Template">
<ControlTemplate TargetType="u:MultiAutoCompleteBox">
<Panel>
<Border
Name="PART_RootBorder"
MinHeight="30"
Padding="{DynamicResource TextBoxContentPadding}"
VerticalAlignment="Stretch"
CornerRadius="{TemplateBinding CornerRadius}"
Background="{DynamicResource TextBoxDefaultBackground}"
BorderBrush="{DynamicResource TextBoxDefaultBorderBrush}">
<u:MultiComboBoxSelectedItemList
<u:MultiComboBoxSelectedItemList
Name="{x:Static u:MultiAutoCompleteBox.PART_SelectedItemsControl}"
VerticalAlignment="Center"
RemoveCommand="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Remove}"
ItemTemplate="{TemplateBinding SelectedItemTemplate}"
ItemsSource="{TemplateBinding SelectedItems}" >
ItemsSource="{TemplateBinding SelectedItems}">
<u:MultiComboBoxSelectedItemList.ItemsPanel>
<ItemsPanelTemplate>
<u:WrapPanelWithTrailingItem>
<u:WrapPanelWithTrailingItem.TrailingItem>
<TextBox VerticalAlignment="Center" Theme="{DynamicResource TagInputTextBoxTheme}"/>
<TextBox VerticalAlignment="Center" Theme="{DynamicResource TagInputTextBoxTheme}" />
</u:WrapPanelWithTrailingItem.TrailingItem>
</u:WrapPanelWithTrailingItem>
</ItemsPanelTemplate>
@@ -61,4 +59,4 @@
</ControlTemplate>
</Setter>
</ControlTheme>
</ResourceDictionary>
</ResourceDictionary>

View File

@@ -63,7 +63,7 @@
</ControlTheme>
<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="BorderBrush" Value="{DynamicResource TextBoxDefaultBorderBrush}" />
<Setter Property="SelectionBrush" Value="{DynamicResource TextBoxSelectionBackground}" />