MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit

MaterialDesignFlowDocument style missing?

Ouverte
#3,275 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement up-for-grabs
Langage dominant
C#
Étoiles
16.3k
Forks
3.5k
Merge moyen
1 j 22 h
PR mergées (30 j)
8

Description

**Is your feature request related to a problem? Please describe.**
In order to get better performance compared to RichTextBox, I display a FlowDocumentScrollViewer with a binding to a FlowDocument of the ViewModel.
```


```

**Describe the solution you'd like**
I'd like a simple:
```


```

**Describe alternatives you've considered**
Here is the extension method dealing manually with style..
```
public static void AppendLogEvents(this FlowDocument flowDocument, IList logEvents)
{
var lastParagraph = flowDocument.Blocks.LastBlock as Paragraph;
if (lastParagraph == null)
{
lastParagraph = new Paragraph();
flowDocument.Blocks.Add(lastParagraph);
}

// Create a new style based on the MaterialDesignTextBoxBase style
var spanStyle = new Style(typeof(Span));
//spanStyle.BasedOn = (Style)Application.Current.Resources["MaterialDesignTextBoxBase"];
//spanStyle.Setters.Add(new Setter(TextElement.FontSizeProperty, 7.0));

var materialDesignSourceStyle = (Style)Application.Current.Resources["MaterialDesignWindow"]; //MaterialDesignTextBlock
var materialDesignSourceStyle2 = (Style)Application.Current.Resources[typeof(MaterialDesignExtensions.Controls.MaterialWindow)];
// Transfer all properties to spanStyle
foreach (Setter setter in materialDesignSourceStyle.Setters.Union(materialDesignSourceStyle2.Setters))
spanStyle.Setters.Add(new Setter(setter.Property, setter.Value));

foreach (var logEvent in logEvents)
{
// Render log message with a template
var renderedMessage = logEvent.RenderMessage();
var span = new Span(new Run(renderedMessage));
span.Style = spanStyle; // Apply the new style to the Span
if (logEvent.Level == LogEventLevel.Warning)
span.Foreground = Brushes.Orange;
else if (logEvent.Level == LogEventLevel.Error || logEvent.Level == LogEventLevel.Fatal)
span.Foreground = Brushes.Red;
else { } //NTD, will let light/dark mode fontcolor
lastParagraph.Inlines.Add(span);
lastParagraph.Inlines.Add(Environment.NewLine);
}
}
```

**Additional context**
Add any other context or screenshots about the feature request here.

Any thing I missed?
Feel free to recommend another approach!

Regards,

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par l’exemple de FlowDocumentScrollViewer et inspectez les ressources existantes MaterialDesignWindow et MaterialDesignTextBoxBase utilisées dans la méthode d’extension de l’issue. Déterminez où doit se trouver un style FlowDocumentScrollViewer et vérifiez que l’exemple peut référencer MaterialDesignFlowDocument tout en conservant les couleurs de thème et le style de texte attendus.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp
Domaine
design, desktop
Type d'issue
Fonctionnalité
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.