2017-09-13 108 views
0

我的WPF應用程序運行良好。然後我改變了一個按鈕的背景顏色,它位於透明窗口內,保存並編譯/運行。從那時起,我的運行程序引發Wpf啓用透明度拋出Windows.Markup.XamlParseException

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"> 

回答

4

你忘了提InnerException,這闡明這個問題:

出現InvalidOperationException:WindowStyle.None是WindowStyle的唯一有效值時AllowsTransparency是真實的。

問題在於,在將WindowStyle設置爲None之前,您正在觸摸Visibility。原則上,XML中的屬性順序無關緊要。在XAML中,實際上它有時可能很重要。這是一個例子。

Visibility="Visible"WindowStyle="None"後,或將AllowsTransparency="True"他們兩人之後 - 或更好,但省略Visibility="Visible"完全。這是多餘的。 Visible是默認值。

+0

編輯器似乎自己訂購屬性,所以我無法重新排序,但省略了Visibility解決了這個問題。實際上,它似乎已經添加了屬性。無論哪種方式,謝謝。 –