首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在WPF中绘制网格

如何在WPF中绘制网格
EN

Stack Overflow用户
提问于 2010-02-23 20:39:38
回答 3查看 10.8K关注 0票数 5

我正在尝试在WPF中创建一个用户控件来表示Go board,它本质上只是一些交叉点上带有点的黑线网格。

目前,我使用Grid控件来处理石块的放置,但其中一个困难是,石块被放置在网格线的交点上,而不是放在它们之间,所以如果我想绘制线条,它们需要穿过网格单元的中心。

我仍然是WPF的新手,所以我不太确定我应该如何处理这个问题;我是否应该在每次呈现控件时手动绘制线条(如果是,如何呈现?),或者有更好的方法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-05 15:00:04

我刚刚在我的博客中添加了这篇文章:

编辑:将文件移至my Google drive

我认为它会帮助你,this is你会得到的结果。你也可以在那里下载项目。

票数 0
EN

Stack Overflow用户

发布于 2010-02-23 20:59:56

前段时间我创建了一个棋盘,我创建了一个ItemsControl,它的每个元素都是带有小矩形模板的ItemsControl。以下是我的代码

代码语言:javascript
运行
复制
<UserControl x:Class="Checker.Controls.Board"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:models="clr-namespace:Checker.Models"
    xmlns:usercontrols="clr-namespace:Checker.Controls"
    xmlns:converters="clr-namespace:Checker.Converters">
    <UserControl.Resources>
        <models:BoardModel x:Key="boardModel"/>
        <converters:BoolToBorderColorConverter x:Key="boolToBorderColorConverter"/>
        <DataTemplate DataType="{x:Type models:Figure}">
            <usercontrols:FigureControl/>
        </DataTemplate>
    </UserControl.Resources>
    <Border>
        <ItemsControl ItemsSource="{Binding Source={StaticResource boardModel}, Path=BoardItems}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <ItemsControl ItemsSource="{Binding}" MouseDown="ItemsControl_MouseDown">
                        <ItemsControl.ItemsPanel>
                            <ItemsPanelTemplate>
                                <VirtualizingStackPanel Orientation="Horizontal"/>
                            </ItemsPanelTemplate>
                        </ItemsControl.ItemsPanel>
                        <ItemsControl.ItemTemplate>
                            <DataTemplate>
                                <Border Background="{Binding Path='IsFirstColor', Converter={StaticResource boolToBorderColorConverter}}" BorderBrush="Black" BorderThickness="1" Width="50" Height="50" MouseDown="ItemsControl_MouseDown">
                                    <ContentPresenter Content="{Binding FigureOnBoard}">

                                    </ContentPresenter>
                                </Border>
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>
                    </ItemsControl>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Border>
</UserControl>

希望这能有所帮助

票数 2
EN

Stack Overflow用户

发布于 2010-02-23 20:57:53

可能有帮助的随机想法:

  1. 使用网格-它在那里,它应该很好地定位东西
  2. 网格“单元格”内容基本上是一个三态的东西,网格线没有任何东西,网格线与白色的石头在顶部,网格线与黑色的石头在顶部-这应该是一个可重用的
  3. 标记-可能是一个用户控件,也可能是其他东西(我对WPF太陌生了)。我很想把它绑定到您的数据上。
  4. 您可以将行为附加到单元格内容,以便在单元格内容被单击时使用,对于其他内容,可以使用

不是很详细,但这就是我解决这个问题的方法

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2318113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档