我想要显示大量的单词,作为文本(不作为网格或列表),每个单词都有一组附加属性喜欢word_id和word_type。
那么最合适的WPF控制是什么?
适当的方式具有合适的性能,绑定功能以及处理文字和文字的所有事情。
或其他什么?
答案 0 :(得分:1)
我会使用WrapPanel
/自定义VirtualizingWrapPanel
来展示商品,使用Converters
/ Triggers
/ VisualStateManager
来管理外观 - 受制于您功能需求。
这是我的看法:
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.ComponentModel;
namespace GridA
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Loaded += (o, e) =>
{
this.i.ItemsSource = "I am a penel which displays words as seperate items. Feel free to resize myself.".Split(" ".ToCharArray());
};
}
}
}
标记:
<Window x:Class="GridA.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid TextBlock.FontSize="20">
<ItemsControl x:Name="i">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Label Margin="3" BorderBrush="Gray" BorderThickness="2" Content="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Window>