9

ho tentato di avere un <Grid/> (con roba interattivo dentro, non solo un'immagine) ritagliato con angoli arrotondati (un <Border/> o un <Rectangle/>, quello che funziona).Come clip contenuti con angoli arrotondati in Windows App Store

Ho tentato più soluzioni, ma nessuno di loro era compatibile con un Windows App Store.

No pennello:

  • RadialGradientBrush non è supportato in un progetto Windows App.
  • DrawingBrush non è supportato in un progetto di app Windows.
  • Il tipo 'VisualBrush' non è stato trovato. Verificare che non manchi un riferimento all'assembly e che tutti gli assembly di riferimento siano stati creati.

No maschera:

  • La proprietà attaccabile 'OpacityMask' non è stato trovato nel tipo di 'immagine'.
  • La proprietà collegabile "OpacityMask" non è stata trovata nel tipo "StackPanel".
  • La proprietà collegabile "OpacityMask" non è stata trovata nel tipo "Grid".

No geometria arrotondata:

  • La proprietà 'RadiusX' non è stato trovato nel tipo 'RectangleGeometry'.
  • MultiBinding non è supportato in un progetto di app Windows.

è qualcosa tecnicamente impossibile in un C#/XAML di Windows app store?

+0

'OpacityMask' non è ancora supportato in WinRT e per' Clip' ci si limiterà a 'RectangleGeometry', quindi penso che dipenda davvero da cosa esattamente si sta tentando di realizzare. –

+0

@ Chrishr. Ho provato la soluzione MS http://msdn.microsoft.com/en-us/library/ms750631.aspx per un RectangleGeometry con gli angoli arrotondati e ha esito negativo. Hanno volutamente rimosso tutti i modi pensabili per tagliare con una forma arrotondata? –

+0

Hai provato a renderlo tramite un elemento 'Path' o un' UIElement'? Non sarai in grado di applicarlo a 'Path' ma credo che potresti applicarlo direttamente a un UIElement come forse; '' –

risposta

2

Sembra a me come hai risposto alla tua domanda. :) Solo la risposta non mi piace?

In WPF le opzioni di clip sono quasi illimitate. Anche SilverLight ha avuto alcune grandi opzioni. Ma, in Windows 8 (in questo momento) sei limitato a RectangleGeometry. Fine della storia. Vale la pena ricordare che è possibile applicare uno Transform a un RectangleGeometry che ti dà un po 'di più in quanto opzioni.

(almeno ora si sa)

Buona fortuna!

15

Hai provato mettendo il vostro controllo all'interno di un confine? Basta impostare il raggio dell'angolo del bordo su 150 e hai un controllo perfettamente rotondo. Ecco un esempio con un pulsante.

<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> 
+0

Ottimo approccio. La forma del pulsante non può essere manipolata direttamente, ma aggiungendoli come un bambino a un bordo dà essenzialmente lo stesso risultato. A livello di codice, i pulsanti possono essere aggiunti a un oggetto bordo usando la proprietà 'Border.Child'. Inoltre, è possibile creare pulsanti circolari impostando 'CornerRadius' su 150. –

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

è possibile utilizzare ImageBrush?

Io lavoro bene.