移植 SettingsControls (#771)

* feat: 移植 SettingsCard 1

* feat: 移植 SettingsCard 2

* feat: 移植 SettingsCard 3

* feat: 移植 SettingsCard 4

* feat: 移植 SettingsCard 5

* feat: 更多设置项迁移到新版 SettingsCard

* feat: 添加 IsEqualStateTrigger 和 IsNullStateTrigger

* feat: 移植 ControlSizeTrigger

* fix: 修复 SettinsCard 在程序启动时错误展示动画的问题

* fix: 修复内存泄露问题

* feat: SettingsCard 不再支持宽度较窄时切换到垂直布局

* Revert "feat: SettingsCard 不再支持宽度较窄时切换到垂直布局"

This reverts commit a5fadae06b.

* feat: 只对特定SettingsCard启用自动切换布局的功能

* UI: PageFrame 在宽度较小时减小边距

* UI: 使 InfoBar 和 SettingsCard 对齐

* feat: 添加 SettingsExpander

* feat: 移植 SettingsExpander 1

* feat: 移植 SettingsExpander 2

* feat: 移植 SettingsExpander 3

* feat: 移植 SettingsExpander 4

* feat: 删除旧版控件

* fix: 修复缩放配置页面崩溃

* feat: SettingsGroup.Title 改名为 Header

* UI: 修复裁剪选项禁用状态文字颜色

* refactor: 优化缩放配置页面布局
使用 SettingsExpander 中的 ListView

* UI: 修复裁剪选项

* UI: 简化启动参数选项 UI

* UI: 简化启动参数选项 UI

* fix: 修复 SettingsExcpander.Items 中的 SettingsCard 对于鼠标点击会错误设置焦点的问题

* chore: 清理
This commit is contained in:
Xu 2023-12-12 18:03:41 +08:00 committed by GitHub
commit 490a4ea16d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
66 changed files with 4589 additions and 2819 deletions

View file

@ -13,24 +13,24 @@ using namespace Windows::UI::Xaml::Markup;
namespace winrt::Magpie::App::implementation {
// uint8_t 不起作用
const DependencyProperty KeyVisual::KeyProperty = DependencyProperty::Register(
const DependencyProperty KeyVisual::_keyProperty = DependencyProperty::Register(
L"Key",
xaml_typename<int>(),
xaml_typename<Magpie::App::KeyVisual>(),
xaml_typename<class_type>(),
PropertyMetadata(box_value<int>(0), &KeyVisual::_OnPropertyChanged)
);
const DependencyProperty KeyVisual::VisualTypeProperty = DependencyProperty::Register(
const DependencyProperty KeyVisual::_visualTypeProperty = DependencyProperty::Register(
L"VisualTypeProperty",
xaml_typename<IInspectable>(),
xaml_typename<Magpie::App::KeyVisual>(),
xaml_typename<class_type>(),
PropertyMetadata(box_value(Magpie::App::VisualType{}), &KeyVisual::_OnPropertyChanged)
);
const DependencyProperty KeyVisual::IsErrorProperty = DependencyProperty::Register(
const DependencyProperty KeyVisual::_isErrorProperty = DependencyProperty::Register(
L"IsError",
xaml_typename<bool>(),
xaml_typename<Magpie::App::KeyVisual>(),
xaml_typename<class_type>(),
PropertyMetadata(box_value(false), &KeyVisual::_OnIsErrorChanged)
);
@ -40,9 +40,9 @@ KeyVisual::KeyVisual() {
}
void KeyVisual::OnApplyTemplate() {
if (_isEnabledChangedToken) {
IsEnabledChanged(_isEnabledChangedToken);
}
base_type::OnApplyTemplate();
_isEnabledChangedRevoker.revoke();
_keyPresenter = GetTemplateChild(L"KeyPresenter").as<ContentPresenter>();
@ -50,16 +50,15 @@ void KeyVisual::OnApplyTemplate() {
_SetEnabledState();
_SetErrorState();
_isEnabledChangedToken = IsEnabledChanged({ this, &KeyVisual::_IsEnabledChanged });
KeyVisual_base<KeyVisual>::OnApplyTemplate();
_isEnabledChangedRevoker = IsEnabledChanged(auto_revoke, { this, &KeyVisual::_IsEnabledChanged });
}
void KeyVisual::_OnPropertyChanged(DependencyObject const& sender, DependencyPropertyChangedEventArgs const&) {
get_self<KeyVisual>(sender.as<default_interface<KeyVisual>>())->_Update();
get_self<KeyVisual>(sender.as<class_type>())->_Update();
}
void KeyVisual::_OnIsErrorChanged(DependencyObject const& sender, DependencyPropertyChangedEventArgs const&) {
get_self<KeyVisual>(sender.as<default_interface<KeyVisual>>())->_SetErrorState();
get_self<KeyVisual>(sender.as<class_type>())->_SetErrorState();
}
void KeyVisual::_IsEnabledChanged(IInspectable const&, DependencyPropertyChangedEventArgs const&) {