-2

我试图在我的视图中创建一个 TextBlock,它将显示我发送给它的任何消息。它只是在每次写入时不断附加一个新行。我希望能够以每行不同的字体、大小和颜色书写。

我找到了适用于 ListViews 和 RichTextBox 的示例。我不在乎它是什么控制。它只需要遵循 MVVM 格式,这就是我在使用这些示例时遇到问题的地方。

对于那些熟悉命令行窗口的人,如何制作批处理文件和“回显”行到显示器?这就是我想要做的。

4

1 回答 1

1

在 Listbox 中找到Alternate row color并使用Textblock 的 Bind 前景。意识到我需要创建一个类来保存我的字符串和颜色。将该类放在 ObservableCollection 中,并绑定到 ObservableCollection。

我的新课:

public class DisplayData
{
    public string _string { get; set; }
    public System.Windows.Media.Brush _color { get; set; }
    public int _fontSize { get; set; }
}

XAML:

<ListBox x:Name="Progress_Window" ItemsSource="{Binding pb._displayString}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding _string}" Foreground="{Binding _color}" FontSize="{Binding _fontSize}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

其中 pb 是我的 VM 中的本地类变量。

模型中的代码:

public ObservableCollection<DisplayData> _displayString { get; set; }
...
_displayString = new ObservableCollection<DisplayData>();
string _error = "Error Opening COM Port";
_displayString.Add(new DisplayData { _string = _error, _color = System.Windows.Media.Brushes.Red, _fontSize = 20 });
于 2013-01-04T14:01:55.273 回答