2017-09-13 2 views
0

Mon application WPF fonctionnait correctement. J'ai ensuite changé les couleurs d'arrière-plan pour un bouton, qui se trouve à l'intérieur d'une fenêtre transparente, enregistré et compilé/exécuté. Depuis, mon programme en cours d'exécution jetteWpf Activation de la transparence Lance Windows.Markup.XamlParseException

Windows.Markup.XamlParseException

avec des informations supplémentaires

System.Windows.UI.Visibility a lancé une exception

I était incapable d'annuler les modifications, et maintenant je ne peux pas résoudre cela, à moins que je supprime la ligne "AllowTransparency = True". J'ai besoin de la fenêtre pour être transparente, comment puis-je résoudre ce problème?

Voici le code du bloc gênant.

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

Répondre

4

Vous avez omis de mentionner la InnerException, qui clarifie le problème:

InvalidOperationException: WindowStyle.None est la seule valeur valable pour WindowStyle quand AllowsTransparency est vrai.

Le problème est que vous touchez Visibility avant de WindowStyle-None. En principe, l'ordre des attributs dans XML n'a pas d'importance. En XAML, en pratique, cela peut parfois être important. C'est un cas où c'est le cas.

Mettez Visibility="Visible" après WindowStyle="None" ou mis AllowsTransparency="True" après les deux - ou mieux encore, tout à fait Visibility="Visible" omettent. C'est redondant. Visible est la valeur par défaut.

+0

L'éditeur semble commander les attributs par lui-même, donc je n'ai pas pu réorganiser, mais en omettant la visibilité, j'ai résolu le problème. En fait, il semble avoir ajouté l'attribut seul. De toute façon, merci. –