In WPF, esiste un modo semplice per aggiungere sottolineature ondulate (come gli errori di ortografia in Word) agli elementi FlowDocument
? C'è la classe Underline
, ma sembra che non ci sia modo di modellarla.Sottolineature ondulate in un documento Flow
risposta
È possibile creare l'effetto ondulato con le seguenti modifiche alla soluzione di Robert Macne
Aggiungi un pennello visiva alla sezione Grid.Resources:
<VisualBrush x:Key="WavyBrush" Viewbox="0,0,3,2" ViewboxUnits="Absolute" Viewport="0,0.8,6,4" ViewportUnits="Absolute" TileMode="Tile">
<VisualBrush.Visual>
<Path Data="M 0,1 C 1,0 2,2 3,1" Stroke="Red" StrokeThickness="0.2" StrokeEndLineCap="Square" StrokeStartLineCap="Square" />
</VisualBrush.Visual>
</VisualBrush>
e cambiare la penna per:
<Pen Brush="{StaticResource WavyBrush}" Thickness="6" />
una sottolineatura rossa è abbastanza semplice:
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid.Resources>
<FlowDocument x:Key="doc">
<Paragraph>
<Run Text="This text is underlined in red.">
<Run.TextDecorations>
<TextDecoration Location="Underline">
<TextDecoration.Pen>
<Pen Brush="Red" Thickness="1" DashStyle="{x:Static DashStyles.Dot}"/>
</TextDecoration.Pen>
</TextDecoration>
</Run.TextDecorations>
</Run>
</Paragraph>
</FlowDocument>
</Grid.Resources>
<FlowDocumentReader Document="{StaticResource doc}"/>
</Grid>
Un ondulato sottolineatura rossa sarebbe un po 'più complesso, ma credo che si potrebbe creare un VisualBrush con una cosa rossa ondulata in essa, e set che come il pennello della penna che si specifica per la sottolineatura di TextDecoration. Modifica: vedi il messaggio bstoney per questo.
hi Robert, pls vedono il mio WPF domanda, la sua possibile o no http://stackoverflow.com/questions/17541780/how-to-set-inline-images-vertically-center-in- richtextbox –
So che questa è una domanda vecchia ma preferisco questo pennello. È un po 'angoloso ma molto pulito.
<VisualBrush x:Key="WavyBrush">
<VisualBrush.Visual>
<Path Data="M 0,2 L 2,0 4,2 6,0 8,2 10,0 12,2" Stroke="Red"/>
</VisualBrush.Visual>
</VisualBrush>
Ecco la soluzione di @ bstoney implementata nel codice.
Pen path_pen = new Pen(new SolidColorBrush(Colors.Red), 0.2);
path_pen.EndLineCap = PenLineCap.Square;
path_pen.StartLineCap = PenLineCap.Square;
Point path_start = new Point(0, 1);
BezierSegment path_segment = new BezierSegment(new Point(1, 0), new Point(2, 2), new Point(3, 1), true);
PathFigure path_figure = new PathFigure(path_start, new PathSegment[] { path_segment }, false);
PathGeometry path_geometry = new PathGeometry(new PathFigure[] { path_figure });
DrawingBrush squiggly_brush = new DrawingBrush();
squiggly_brush.Viewport = new Rect(0, 0, 6, 4);
squiggly_brush.ViewportUnits = BrushMappingMode.Absolute;
squiggly_brush.TileMode = TileMode.Tile;
squiggly_brush.Drawing = new GeometryDrawing(null, path_pen, path_geometry);
TextDecoration squiggly = new TextDecoration();
squiggly.Pen = new Pen(squiggly_brush, 6);
text_box.TextDecorations.Add(squiggly);
- 1. Sottolineature iniziali in un indirizzo email?
- 2. Estensione di un documento Flow con CustomElement personalizzati nel wpf
- 3. Sottolineature non visualizzate in WPF
- 4. Come disattivare a livello di programmazione le linee rosse ondulate in un documento Microsoft Word tramite VBA?
- 5. generare dinamica flow-chart
- 6. JWT refresh token flow
- 7. Spring Web Flow LockTimeoutException
- 8. ng-flow upload programmaticamente
- 9. Spring web services flow
- 10. Mongomapper: copia un documento in un nuovo documento
- 11. Git flow e Github
- 12. Significato dell'annotazione @Flow
- 13. come impostare un singolo file in ng-flow
- 14. if-else flow in promise (bluebird)
- 15. 'upsert' in un documento incorporato
- 16. Accecare un documento in lattice
- 17. Funzionalità Git-Flow e client
- 18. Formally constructing Control Flow Graph
- 19. OAuth2 Flow per dispositivi mobili
- 20. ng-flow che emette un GET, ma non un POST
- 21. Denominazione degli attributi HTML "class" e "id": trattini o sottolineature
- 22. Come si controlla se un documento incorporato esiste in un documento in mongoi?
- 23. Aggiornare un documento secondario contenuto in una matrice contenuta in un documento MongoDB
- 24. Come aggiornare un documento incorporato in un documento incorporato in mangusta?
- 25. Differenze tra documento vs $ documento in Angular
- 26. Git-Flow annulla un ramo di feature finito
- 27. Come clonare un repository git di stile git-flow?
- 28. Quali sono i pro e i contro di git-flow vs github-flow?
- 29. Come caricare file in blocchi in ASP.NET utilizzando ng-Flow
- 30. Esiste un comando per annullare git flow init?
+1, questo è proprio quello che stavo pensando, ma non riuscivo a farlo funzionare correttamente, bello! –
Ho trovato un gradino di bezier cubico per scalare bene piuttosto difficile. Anche due linee diagonali funzionano bene, ma non sembravano così buone. – bstoney
Quel WavyBrush sopra non è un'onda l'ho provato. – Elisabeth