2012-06-15 3 views
1

J'ai suivi cet exemple pour afficher mon usercontrol dans Coding4Fun MessagePrompt. http://windowsphonegeek.com/articles/Creating-a-Windows-Phone-7-Trial-Application-Adding-Buy-Now-FunctionalityComment supprimer la bordure dans Coding4Fun MessagePrompt

Lorsque l'icône d'accueil au bas de la page est cliqué j'ouvre MessagePromt qui a mon UserControl avec deux boutons comme dans l'image ci-dessous.

Mais pour une raison quelconque, il apparaît cette bordure blanche claire, je suis incapable de déterminer d'où il vient.

Note: J'ai défini la bordure Transparente et 0 épaisseur pour mon usercontorl et tous les contrôles à l'intérieur. Je veux juste montrer le panneau bleu et aucune bordure blanche et sa largeur est de 300 comme ce qu'il est vu.

Quelqu'un a-t-il une idée?

enter image description here

Répondre

2

J'ai reçu de l'aide de "Eric Fleck - Microsoft" sur des forums d'application. Voici sa solution:

<phone:PhoneApplicationPage  
    ...  
    xmlns:c4f="clr-namespace:Coding4Fun.Phone.Controls;assembly=Coding4Fun.Phone.Controls"> 

    <phone:PhoneApplicationPage.Resources> 
     <ControlTemplate x:Key="MsgPropmtNoBorder" TargetType="c4f:MessagePrompt"> 
      <Grid VerticalAlignment="Stretch"> 
       <Rectangle Fill="{StaticResource TransparentBrush}" /> 

       <Border VerticalAlignment="Top"  
         Margin="10"  
         Background="{TemplateBinding Background}"  
         BorderThickness="0"  
         BorderBrush="{StaticResource PhoneForegroundBrush}"> 

        <StackPanel Margin="10"> 
         <TextBlock  
            Text="{TemplateBinding Title}"  
            Margin="0,-10,-25,10"  
            FontSize="30"  
            TextWrapping="Wrap" FontFamily="Segoe WP Light" /> 
         <ContentPresenter Content="{TemplateBinding Body}" /> 
         <StackPanel  
            Margin="0,10,0,0" 
            Name="actionButtonArea" 
            Orientation="Horizontal" 
            HorizontalAlignment="Center" /> 
        </StackPanel> 

       </Border> 
      </Grid> 

     </ControlTemplate> 
    </phone:PhoneApplicationPage.Resources> 


     MessagePrompt prompt = new MessagePrompt();  
     prompt.Body = new WPUC();  
     prompt.ActionPopUpButtons.Clear();  
     prompt.Overlay = new SolidColorBrush(Color.FromArgb(155, 41, 41, 41)); 
     prompt.Template = (ControlTemplate)this.Resources["MsgPropmtNoBorder"]; 

     prompt.Show(); 

est ici la fenêtre résultante: enter image description here

+0

Où placer le code xml? – Developer

+1

@NadAnd, le code xml va dans le fichier .xaml de votre page qui contient le bouton qui va ouvrir votre popup. Donc, dans mon cas, le bouton d'accueil dans le coin inférieur gauche est mon bouton qui est à l'intérieur d'un contrôle utilisateur. J'ai donc mis le code xml dans le fichier .xaml de mon UC. Mais je pense que vous pourriez être en mesure de le mettre dans le app.xaml aussi bien que je n'ai pas essayé. Ensuite, vous devrez référencer le modèle en conséquence dans le code-behind. – oms

+0

Je l'ai fait mais le corps a également disparu – Developer

0

J'ai joué un peu avec le contrôle MessagePrompt, il n'a pas pu trouver un moyen de désactiver ou masquer la frontière. C'est un type d'effet d'ombre dans le contrôle MessagePrompt pour fournir une apparence de type popup. Toutefois, même si vous ne pouvez pas le supprimer, vous pouvez réduire son effet en définissant la propriété Width du MessagePrompt égale à votre UserControl bleu réel (300 dans ce cas).

+0

je l'ai déjà essayé cela, mais pour une raison quelconque, il ajouterait une sorte de rembourrage ou de la marge. J'ai mis le remplissage, la marge etc. pour mon contrôle à 0. Je vais essayer à nouveau cependant. – oms

Questions connexes