Come abbiamo visto per altri contesti, come ad esempio i Behaviour, l'SDK di Expression Blend mette a disposizione una serie di librerie con le quali possiamo aggiungere una serie di funzionalità ai nostri progetti Silverlight.
Nell'assembly Microsoft.Expression.Drawing.dll, presente solitamente in
\Program Files (x86)\Microsoft SDKs\Expression\Blend\Silverlight\v4.0\Libraries\Microsoft.Expression.Drawing.dll, possiamo trovare il controllo Callout che ci permette di inserire vignette di diverse forme e ampiamente personalizzabili.
Dopo aver registrato, come di consueto, il namespace xml sullo schema "http://schemas.microsoft.com/expression/2010/drawing", l'utilizzo del controllo è estremamente semplice:
<UserControl x:Class="SilverlightItalia._128.MainPage" 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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing" mc:Ignorable="d"> <Grid x:Name="LayoutRoot" Background="White"> <ed:Callout AnchorPoint="0,1" CalloutStyle="Oval" FontSize="15" Stroke="#FF4395A5" Width="150" Height="70" Margin="11,13,0,0"> <ed:Callout.Fill> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FF53C7DD" Offset="0" /> <GradientStop Color="White" Offset="1" /> </LinearGradientBrush> </ed:Callout.Fill> <ContentControl> <TextBlock Text="Oval" /> </ContentControl> </ed:Callout>
CallOut è un CompositeContentShape, classe astratta che eredita a sua volta da ContentControl. Per questo motivo un CallOut può mostrare a video qualunque altro oggetto vogliamo.
Con la proprietà CalloutStyle possiamo scegliere le quattro forme predefinite: Oval, RoundedRectangle, Rectangle e Cloud.
Di seguito alcuni esempi:
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Code scanning e advanced security con Azure DevOps
Sfruttare lo streaming di una chiamata Http da Blazor
Generare file PDF da Blazor WebAssembly con iText
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Eseguire operazioni sui blob con Azure Storage Actions
Utilizzare Tailwind CSS all'interno di React: primi componenti
Usare le variabili per personalizzare gli stili CSS
Sfruttare al massimo i topic space di Event Grid MQTT
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
I più letti di oggi
- Personalizzare la pagina di errore con ASP.NET
- Windows Phone 8 usa IE10 come browser, quindi pieno supporto ad HTML5, compresi i ... https://aspit.co/wp-summit #WPSummit
- siete pronti? la #netconfit torna anche nel 2019!.NET Conference Italia 2019 sarà trasmessa live il 23 ottobre.Info e iscrizioni su => https://aspit.co/netconf-19
- Identificare una classe come complex type con Entity Framework Code First
- Applicare effetti bitmap agli elementi di WPF
- Data binding con ADO.NET
- Utilizzare controlli ASP.NET iterativi annidati