Files
petwash/XAML_FIX.md
GukSang.Jin 9c66b6cd82
2026-03-03 16:55:02 +08:00

3.5 KiB
Raw Blame History

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属性
  • 直接设置ForegroundFontSizeFontWeightFontFamily等属性
  • 使用设计文档中定义的颜色值

如何运行

1. 关闭正在运行的应用程序

如果应用程序正在运行,请先关闭它。

2. 重新编译

cd PetWashControl
dotnet build

3. 运行应用程序

dotnet run

或在Visual Studio中按F5运行。

验证修复

应用程序应该能够正常启动,显示以下界面:

  1. 待机界面正常显示
  2. 所有文字颜色正确
  3. 没有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时注意以下几点

  1. Run元素只能直接设置属性不能使用Style
  2. 使用Visual Studio的智能提示避免设置不支持的属性
  3. 编译前使用XAML设计器预览及早发现问题
  4. 参考WPF官方文档了解元素的限制

状态

  • 问题已识别
  • 代码已修复
  • 等待用户关闭应用程序后重新编译
  • 等待验证修复效果

下一步

  1. 关闭正在运行的PetWashControl应用程序
  2. 重新编译项目
  3. 运行应用程序验证修复
  4. 如有其他问题,请查看错误信息并反馈

修复日期: 2026年2月25日
修复状态: 已完成