2016-08-24 5 views

Répondre

0

Vous ne pouvez pas rendre le modèle standard de boîte de dialogue. Pour réaliser ce que vous voulez, vous devriez utiliser un panneau personnalisé sur le dessus de votre page avec des événements de manipulation accrochés. Par exemple:

<Grid x:Name="LayoutRoot"> 
    <!-- some other content --> 

    <Grid x:Name="Dialog" Background="Red" Width="200" Height="100" 
      ManipulationMode="All" ManipulationDelta="Dialog_OnManipulationDelta"> 

     <Grid.RenderTransform> 
      <CompositeTransform x:Name="DialogTransform" /> 
     </Grid.RenderTransform> 
    </Grid> 
</Grid> 

et le code derrière:

private void Dialog_OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs args) 
{ 
    DialogTransform.TranslateX += args.Delta.Translation.X; 
    DialogTransform.TranslateY += args.Delta.Translation.Y; 
} 

Ensuite, vous pouvez construire plus logique complexe comme des animations affichage/masquage, boutons de fermeture, etc.

+0

Cela fonctionne très bien. Est-il possible de récupérer ma capacité de sélection dans une TextBox contenue? Je vais sélectionner le texte et la boîte se déplace à la place de l'affichage. Nouveau à l'utilisation de OnManipulationDelta. – Rick

+0

Peu importe. Je l'ai corrigé avec ceci: – Rick

+0

private OnTextBoxMainipulation (expéditeur d'objet, Windows.UI.Xaml.Input.ManipulationDeltaRoutedEventArgs e) { DialogTransform.TranslateX- = e.Delta.Translation.X; DialogTransform.TranslateY- = e.Delta.Translation.Y; } – Rick