ComboBox 中的网格列和行
Grid columns and rows in ComboBox
我在组合框中有 30 个项目。我正在寻找在组合框中添加列和行的方法。
这是我想要做的:
组合框有 4 列,7 行(行 = itemCount/columns)。
项目 class:
public class ItemSymbol{
public string ImageName{
get; set;
}
public string Comment{
get; set;
}
}
ViewModel:
List<ItemSymbol> lstsymbol=new List<ItemSymbol>(30){
new ItemSymbol(){ImageName=@"Resources\bunny.png",Comment="funny"},
new ItemSymbol(){ImageName=@"Resources\hand.png",Comment="communication"},
new ItemSymbol(){ImageName=@"Resources\heart1.png",Comment="love"},
new ItemSymbol(){ImageName=@"Resources\heart2.png",Comment="love"}
};
Window1.xaml:
<ComboBox x:Name="cbo"
ItemsSource="{Binding lstsymbol}"
SelectedItem="{Binding SelectedItem}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Image Width="30" Height="30"
Source="{Binding ImageRes}" Margin="5" ToolTip="{Binding Comment}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
将此元素添加到 XAML 中的组合框:
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="7" Columns="4" />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
(但你知道 7x4 小于 30 吗?):-)
我在组合框中有 30 个项目。我正在寻找在组合框中添加列和行的方法。
这是我想要做的:
组合框有 4 列,7 行(行 = itemCount/columns)。
项目 class:
public class ItemSymbol{
public string ImageName{
get; set;
}
public string Comment{
get; set;
}
}
ViewModel:
List<ItemSymbol> lstsymbol=new List<ItemSymbol>(30){
new ItemSymbol(){ImageName=@"Resources\bunny.png",Comment="funny"},
new ItemSymbol(){ImageName=@"Resources\hand.png",Comment="communication"},
new ItemSymbol(){ImageName=@"Resources\heart1.png",Comment="love"},
new ItemSymbol(){ImageName=@"Resources\heart2.png",Comment="love"}
};
Window1.xaml:
<ComboBox x:Name="cbo"
ItemsSource="{Binding lstsymbol}"
SelectedItem="{Binding SelectedItem}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Image Width="30" Height="30"
Source="{Binding ImageRes}" Margin="5" ToolTip="{Binding Comment}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
将此元素添加到 XAML 中的组合框:
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="7" Columns="4" />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
(但你知道 7x4 小于 30 吗?):-)