C# Wpf启用透明度会引发Windows.Markup.XamlParseException

C# Wpf启用透明度会引发Windows.Markup.XamlParseException,c#,wpf,exception,C#,Wpf,Exception,我的WPF应用程序运行良好。然后,我更改了一个按钮的背景色,该按钮位于一个透明窗口内,保存并编译/运行。从那以后,运行我的程序 Windows.Markup.XamlParseException 附加信息 System.Windows.UI.Visibility引发了异常 我无法撤消更改,现在我无法解决此问题,除非删除“AllowTransparency=True”行。我需要窗户是透明的,我怎么才能解决这个问题 这是故障块的代码 <Window x:Class="WPF.Overl

我的WPF应用程序运行良好。然后,我更改了一个按钮的背景色,该按钮位于一个透明窗口内,保存并编译/运行。从那以后,运行我的程序

Windows.Markup.XamlParseException

附加信息

System.Windows.UI.Visibility引发了异常

我无法撤消更改,现在我无法解决此问题,除非删除“AllowTransparency=True”行。我需要窗户是透明的,我怎么才能解决这个问题

这是故障块的代码

<Window
    x:Class="WPF.OverlayButtonField"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:local="clr-namespace:WPF"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="OverlayButtonField"
    Width="175"
    Height="139"
    AllowsTransparency="True"
    Loaded="Window_Loaded"
    ShowActivated="False"
    ShowInTaskbar="False"
    Topmost="True"
    Visibility="Visible"
    WindowStyle="None">

您忽略了提及
内部异常,这澄清了问题:

InvalidOperationException:WindowsStyle。AllowTransparency为true时,None是WindowsStyle的唯一有效值

问题在于,在将
WindowStyle
设置为
None
之前,您正在触摸
Visibility
。原则上,XML中属性的顺序并不重要。在XAML中,在实践中,它有时可能很重要。这种情况确实如此


Visibility=“Visible”
放在
WindowStyle=“None”
之后,或将
allowtransparency=“True”
放在两者之后,或者最好完全省略
Visibility=“Visible”
。这是多余的<代码>可见
是默认设置

您忽略了提及
InnerException
,这澄清了问题:

InvalidOperationException:WindowsStyle。AllowTransparency为true时,None是WindowsStyle的唯一有效值

问题在于,在将
WindowStyle
设置为
None
之前,您正在触摸
Visibility
。原则上,XML中属性的顺序并不重要。在XAML中,在实践中,它有时可能很重要。这种情况确实如此


Visibility=“Visible”
放在
WindowStyle=“None”
之后,或将
allowtransparency=“True”
放在两者之后,或者最好完全省略
Visibility=“Visible”
。这是多余的<代码>可见是默认设置

编辑器似乎自己对属性进行排序,因此我无法重新排序,但忽略可见性解决了这个问题。事实上,它似乎自己添加了该属性。不管怎样,谢谢。编辑器似乎自己对属性进行排序,所以我无法重新排序,但忽略可见性解决了问题。事实上,它似乎自己添加了该属性。不管怎样,谢谢你。