10
votes

Comment couper du contenu avec des coins arrondis dans l'application Windows Store

J'ai tenté d'avoir un (avec des trucs interactifs à l'intérieur, pas seulement une image) coupé avec des angles arrondis (un ou un , quels que soient les œuvres).

J'ai tenté plusieurs solutions, mais aucun d'entre eux n'a été compatible avec une application Windows Store.

pas de brosse:

  • radialgradientbrush n'est pas pris en charge dans un projet d'application Windows.
  • DessinCrush n'est pas pris en charge dans un projet d'application Windows.
  • Le type 'Visualbrush' n'a pas été trouvé. Vérifiez que vous ne manquez pas de référence d'assemblage et que tous les assemblages référencés ont été construits.

    pas de masque:

    • La propriété attachable 'OpacityMask' n'a pas été trouvée dans le type "Image".
    • La propriété attachable 'OpacityMask' n'a pas été trouvée dans le type 'StackPanel'.
    • La propriété attachable 'opacestmask' n'a pas été trouvée dans le type "grille".

      Pas de géométrie arrondie:

      • La propriété 'RADIUSX' n'a pas été trouvée dans le type 'rectanglegeométrie'.
      • Multibinding n'est pas pris en charge dans un projet d'application Windows.

        Est-ce quelque chose de techniquement impossible dans une application C # / XAML Windows Store?


5 commentaires

OpacityMask n'est pas encore pris en charge dans WinRT et pour Clip Vous allez être limité à rectangletéométrie donc je suppose que cela dépend vraiment de quoi Exactement vous essayez d'accomplir.


@Chrisw. J'ai essayé MS Solution msdn.microsoft.com/en-us/library/ms750631. ASPX pour une rectangletométrie avec des coins arrondis, et elle échoue aussi bien. Ont-ils délibérément supprimé toutes les manières imaginables de couper avec une forme arrondie?


Avez-vous essayé de le faire via un élément élément ou un uielement ? Vous ne pourrez pas l'appliquer à chemin mais je pense que vous pouvez l'appliquer directement à un uielement comme peut-être;


Il est poli de marquer la meilleure réponse / correcte.


@ Jerrynixon-msft sauf que je ne peux pas être d'accord avec l'impossibilité de programmer un simple aspect de l'interface utilisateur dans un logiciel: coins rounds. C'est comme la troisième fois que je suis confronté à des problèmes impossibles avec XAML: les précédents étaient "contrôler sur une vision Web animée" et "Liaison dans une barre d'application". Je n'ai jamais fait face à ces nombreuses restrictions auparavant. Comme je ne veux pas commencer à détester le développement de Windows 8, je souhaite trouver des solutions de contournement. Je prie pour une meilleure réponse que la tienne.


3 Réponses :


0
votes

Cela me semble que vous avez répondu à votre propre question. :) Je n'aime tout simplement pas la réponse?

Dans WPF, vos options à clip sont presque sans limites. Même Silverlight avait de bonnes options. Mais, sous Windows 8 (en ce moment), vous êtes limité à rectangletéométrie . Fin de l'histoire. Il convient de souligner que vous pouvez appliquer un transformer sur un rectangletéométrie qui vous donne un peu plus dans la mesure où des options.

(au moins maintenant que vous savez)

Bonne chance!


0 commentaires

16
votes

Avez-vous essayé de mettre votre contrôle à l'intérieur d'une frontière? Il suffit de définir le rayon de coin de la bordure à 150 et vous avez un contrôle parfaitement rond. Voici un exemple avec un bouton.

    <Border BorderBrush="Black" BorderThickness="1" HorizontalAlignment="Center"  Height="200" Margin="0,0,0,0" VerticalAlignment="center" Width="200" CornerRadius="150">

        <Button x:Name="btnPlayback" Content="Play" HorizontalAlignment="Center" Height="200" Margin="0,0,0,0" VerticalAlignment="center" Width=" 200" BorderThickness="0"  Click="btnPlayback_Click_1"/>

    </Border>


1 commentaires

Excellente approche. La forme des boutons ne peut pas être manipulée directement mais l'ajoutant d'un enfant à une frontière donne essentiellement le même résultat. Programmatiquement, les boutons peuvent être ajoutés à un objet de frontière à l'aide de la propriété BORTER.CHILD . En outre, des boutons circulaires peuvent être effectués en réglant le Cornerradius à 150.



3
votes
<Ellipse HorizontalAlignment="Left" Height="301" Stroke="Black" VerticalAlignment="Top" Width="300">
    <Ellipse.Fill>
        <ImageBrush Stretch="Uniform" ImageSource="http://cfile3.uf.tistory.com/image/26616E4D514A3CDC136C4B"/>
    </Ellipse.Fill>
</Ellipse>
Can you use ImageBrush?I works well.

0 commentaires