0

是否有用于 .NET WinForms 或 WPF 的组件来创建带有图标的 ControlPanel 样式布局?
我想要一个看起来像控制面板的窗口,里面有可变数量的图标。

4

1 回答 1

0

例如:

<UniformGrid>
    <StackPanel Orientation="Horizontal" 
                VerticalAlignment="Top">
        <Image Width="48" 
                Height="48" 
                Source="appbar.forklift.load.png" />
        <TextBlock VerticalAlignment="Center">
            <Hyperlink>Action Center</Hyperlink>
        </TextBlock>
    </StackPanel>
    <StackPanel Orientation="Horizontal" 
                VerticalAlignment="Top">
        <Image Width="48" 
                Height="48" 
                Source="appbar.forrst.png" />
        <TextBlock VerticalAlignment="Center">
            <Hyperlink>Keyboard</Hyperlink>
        </TextBlock>
    </StackPanel>
    <StackPanel Orientation="Horizontal" 
                VerticalAlignment="Top">
        <Image Width="48" 
                Height="48" 
                Source="appbar.forklift.png" />
        <TextBlock VerticalAlignment="Center">
            <Hyperlink>Notification</Hyperlink>
        </TextBlock>
    </StackPanel>
    <StackPanel Orientation="Horizontal" 
                VerticalAlignment="Top">
        <Image Width="48" 
                Height="48" 
                Source="appbar.forklift.load.png" />
        <TextBlock VerticalAlignment="Center">
            <Hyperlink>Region</Hyperlink>
        </TextBlock>
    </StackPanel>
    <StackPanel Orientation="Horizontal" 
                VerticalAlignment="Top">
        <Image Width="48" 
                Height="48" 
                Source="appbar.forklift.load.png" />
        <TextBlock VerticalAlignment="Center">
            <Hyperlink>Speech</Hyperlink>
        </TextBlock>
    </StackPanel>       
</UniformGrid>

您可以根据需要添加任意数量,它们将为您布置。(取决于您真正想要的东西,包装板可能会更好)。

然后,如果您使用 MVVM,则可以将每个链接的“命令”属性绑定到 ViewModel 上的命令。

<HyperLink Command="{Binding OpenActionLinkCenterCommand}">Action Center</HyperLink>

如果您希望项目来自集合,您可以使用 ItemsContainer 或 ListBox 并更改 ItemsPanel 模板

<ListBox ItemsSource="{Binding YourControlPanelItems}">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
</ListBox>

当然还有很多方法,这只是一个小例子。

于 2012-12-07T02:14:20.880 回答