3.5 KiB
3.5 KiB
XAML 错误修复说明
问题描述
运行WPF应用时出现以下错误:
System.Windows.Markup.XamlParseException: "设置属性'System.Windows.FrameworkElement.Style'时引发了异常。"
行号: 300, 行位置: 38
问题原因
在XAML中,Run元素不支持Style属性。Run是一个内联元素,只能直接设置属性,不能使用样式资源。
错误代码(已修复)
修复前
<TextBlock HorizontalAlignment="Center" Margin="0,10,0,0">
<Run Text="剩余时间: "
Style="{StaticResource BodyTextBlock}"/> <!-- ❌ 错误:Run不支持Style -->
<Run Text="01:45"
Style="{StaticResource DataTextBlock}" <!-- ❌ 错误:Run不支持Style -->
FontSize="32"/>
</TextBlock>
修复后
<TextBlock HorizontalAlignment="Center" Margin="0,10,0,0">
<Run Text="剩余时间: "
Foreground="#B0C4DE" <!-- ✅ 正确:直接设置属性 -->
FontSize="16"/>
<Run Text="01:45"
Foreground="#00D4FF" <!-- ✅ 正确:直接设置属性 -->
FontWeight="Bold"
FontFamily="Consolas"
FontSize="32"/>
</TextBlock>
修复步骤
已自动修复,无需手动操作。修改内容:
- 移除了
Run元素上的Style属性 - 直接设置
Foreground、FontSize、FontWeight、FontFamily等属性 - 使用设计文档中定义的颜色值
如何运行
1. 关闭正在运行的应用程序
如果应用程序正在运行,请先关闭它。
2. 重新编译
cd PetWashControl
dotnet build
3. 运行应用程序
dotnet run
或在Visual Studio中按F5运行。
验证修复
应用程序应该能够正常启动,显示以下界面:
- ✅ 待机界面正常显示
- ✅ 所有文字颜色正确
- ✅ 没有XAML解析错误
技术说明
Run元素的限制
Run是WPF中的内联文本元素,有以下限制:
- ❌ 不支持
Style属性 - ❌ 不支持
Template属性 - ✅ 支持直接属性设置(Foreground, FontSize等)
- ✅ 支持数据绑定
正确的使用方式
方式1:直接设置属性(推荐用于Run)
<Run Text="文本"
Foreground="#00D4FF"
FontSize="16"
FontWeight="Bold"/>
方式2:使用Style(用于TextBlock)
<TextBlock Text="文本"
Style="{StaticResource TitleTextBlock}"/>
方式3:混合使用
<TextBlock Style="{StaticResource BodyTextBlock}">
<Run Text="普通文本"/>
<Run Text="强调文本"
Foreground="#00D4FF"
FontWeight="Bold"/>
</TextBlock>
相关文件
- 修复文件:
PetWashControl/Views/MainWindow.xaml - 样式定义:
PetWashControl/Resources/Styles.xaml - 设计规范:
PetWashControl/VISUAL_DESIGN.md
预防措施
在编写XAML时,注意以下几点:
Run元素只能直接设置属性,不能使用Style- 使用Visual Studio的智能提示,避免设置不支持的属性
- 编译前使用XAML设计器预览,及早发现问题
- 参考WPF官方文档了解元素的限制
状态
- ✅ 问题已识别
- ✅ 代码已修复
- ⏳ 等待用户关闭应用程序后重新编译
- ⏳ 等待验证修复效果
下一步
- 关闭正在运行的PetWashControl应用程序
- 重新编译项目
- 运行应用程序验证修复
- 如有其他问题,请查看错误信息并反馈
修复日期: 2026年2月25日
修复状态: ✅ 已完成