带网格/覆盖层的C#面板
您好,我想为c#中的一个小游戏实现一个控件,用户可以单击面板并绘制一条穿过迷宫的路径。之后,我想传输路径上某个地方交叉的每个“点”的坐标 为了做到这一点,我尝试实现某种网格,其中每一块都有相同的大小。然后我想创建一种覆盖,这样用户可以点击网格,然后网格变成绿色,显示用户选择的方式 我在下面举了一个小例子,希望能解释我的意思: 我的问题是我对面板和图形不是特别熟练,希望这里的人能有一些资料或教程来完成我想做的事情带网格/覆盖层的C#面板,c#,math,grid,overlay,C#,Math,Grid,Overlay,您好,我想为c#中的一个小游戏实现一个控件,用户可以单击面板并绘制一条穿过迷宫的路径。之后,我想传输路径上某个地方交叉的每个“点”的坐标 为了做到这一点,我尝试实现某种网格,其中每一块都有相同的大小。然后我想创建一种覆盖,这样用户可以点击网格,然后网格变成绿色,显示用户选择的方式 我在下面举了一个小例子,希望能解释我的意思: 我的问题是我对面板和图形不是特别熟练,希望这里的人能有一些资料或教程来完成我想做的事情 提前谢谢 很久以前,我用原语中的Togglebutton制作了这样的东西: Sys
提前谢谢 很久以前,我用原语中的Togglebutton制作了这样的东西: System.Windows.Controls.Primitives.ToggleButton tb=新建ToggleButton() 仅使用网格创建WPF解决方案
- Xaml文件:
- Cs文件:
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); fillWithToggles(); } public void fillWithToggles() { for (int i = 0; i < 10; i++) { ColumnDefinition gridCol = new ColumnDefinition(); gridCol.Name = "Column" + i.ToString(); DynamicGrid.ColumnDefinitions.Add(gridCol); } for (int i = 0; i < 10; i++) { RowDefinition gridRow = new RowDefinition(); gridRow.Name = "Row" + i.ToString(); DynamicGrid.RowDefinitions.Add(gridRow); } for (int x = 0; x < 10; x++) { for (int y = 0; y < 10; y++) { System.Windows.Controls.Primitives.ToggleButton tb = new ToggleButton(); tb.VerticalAlignment = VerticalAlignment.Stretch; tb.HorizontalAlignment = HorizontalAlignment.Stretch; Grid.SetColumn(tb, x); Grid.SetRow(tb,y); DynamicGrid.Children.Add(tb); } } }}
公共部分类主窗口:窗口 { 公共主窗口() { 初始化组件(); fillWithToggles(); } 公共空白fillWithToggles() { 对于(int i=0;i<10;i++) { ColumnDefinition gridCol=新ColumnDefinition(); gridCol.Name=“Column”+i.ToString(); DynamicGrid.ColumnDefinitions.Add(gridCol); } 对于(int i=0;i<10;i++) { RowDefinition gridRow=新的RowDefinition(); gridRow.Name=“Row”+i.ToString(); DynamicGrid.RowDefinitions.Add(gridRow); } 对于(int x=0;x<10;x++) { 对于(int y=0;y<10;y++) { System.Windows.Controls.Primitives.ToggleButton tb=新建ToggleButton(); tb.VerticalAlignment=VerticalAlignment.Stretch; tb.HorizontalAlignment=HorizontalAlignment.Stretch; Grid.SetColumn(tb,x); 网格设置行(tb,y); DynamicGrid.Children.Add(tb); } } }}
稍后,您可以玩边框和整个逻辑等。很久以前,我使用原语中的Togglebutton制作了如下内容: System.Windows.Controls.Primitives.ToggleButton tb=新建ToggleButton() 仅使用网格创建WPF解决方案
- Xaml文件:
- Cs文件:
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); fillWithToggles(); } public void fillWithToggles() { for (int i = 0; i < 10; i++) { ColumnDefinition gridCol = new ColumnDefinition(); gridCol.Name = "Column" + i.ToString(); DynamicGrid.ColumnDefinitions.Add(gridCol); } for (int i = 0; i < 10; i++) { RowDefinition gridRow = new RowDefinition(); gridRow.Name = "Row" + i.ToString(); DynamicGrid.RowDefinitions.Add(gridRow); } for (int x = 0; x < 10; x++) { for (int y = 0; y < 10; y++) { System.Windows.Controls.Primitives.ToggleButton tb = new ToggleButton(); tb.VerticalAlignment = VerticalAlignment.Stretch; tb.HorizontalAlignment = HorizontalAlignment.Stretch; Grid.SetColumn(tb, x); Grid.SetRow(tb,y); DynamicGrid.Children.Add(tb); } } }}
公共部分类主窗口:窗口 { 公共主窗口() { 初始化组件(); fillWithToggles(); } 公共空白fillWithToggles() { 对于(int i=0;i<10;i++) { ColumnDefinition gridCol=新ColumnDefinition(); gridCol.Name=“Column”+i.ToString(); DynamicGrid.ColumnDefinitions.Add(gridCol); } 对于(int i=0;i<10;i++) { RowDefinition gridRow=新的RowDefinition(); gridRow.Name=“Row”+i.ToString(); DynamicGrid.RowDefinitions.Add(gridRow); } 对于(int x=0;x<10;x++) { 对于(int y=0;y<10;y++) { System.Windows.Controls.Primitives.ToggleButton tb=新建ToggleButton(); tb.VerticalAlignment=VerticalAlignment.Stretch; tb.HorizontalAlignment=HorizontalAlignment.Stretch; Grid.SetColumn(tb,x); 网格设置行(tb,y); DynamicGrid.Children.Add(tb); } } }}
稍后,您可以玩边框和整个逻辑等。很久以前,我使用原语中的Togglebutton制作了如下内容: System.Windows.Controls.Primitives.ToggleButton tb=新建ToggleButton() 仅使用网格创建WPF解决方案
- Xaml文件:
- Cs文件:
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); fillWithToggles(); } public void fillWithToggles() { for (int i = 0; i < 10; i++) { ColumnDefinition gridCol = new ColumnDefinition(); gridCol.Name = "Column" + i.ToString(); DynamicGrid.ColumnDefinitions.Add(gridCol); } for (int i = 0; i < 10; i++) { RowDefinition gridRow = new RowDefinition(); gridRow.Name = "Row" + i.ToString(); DynamicGrid.RowDefinitions.Add(gridRow); } for (int x = 0; x < 10; x++) { for (int y = 0; y < 10; y++) { System.Windows.Controls.Primitives.ToggleButton tb = new ToggleButton(); tb.VerticalAlignment = VerticalAlignment.Stretch; tb.HorizontalAlignment = HorizontalAlignment.Stretch; Grid.SetColumn(tb, x); Grid.SetRow(tb,y); DynamicGrid.Children.Add(tb); } } }}
公共部分类主窗口:窗口 { 公共主窗口() { 初始化组件(); fillWithToggles(); } 公共空白fillWithToggles() { 对于(int i=0;i<10;i++) { ColumnDefinition gridCol=新ColumnDefinition(); gridCol.Name=“Column”+i.ToString(); DynamicGrid.ColumnDefinitions.Add(gridCol); } 对于(int i=0;i<10;i++) { RowDefinition gridRow=新的RowDefinition(); gridRow.Name=“Row”+i.ToString(); DynamicGrid.RowDefinitions.Add(gridRow); } 对于(int x=0;x<10;x++) { 对于(int y=0;y<10;y++) { System.Windows.Controls.Primitives.ToggleButton tb=新建ToggleButton(); tb.VerticalAlignment=VerticalAlignment.Stretch; tb.HorizontalAlignment=HorizontalAlignment.Stretch; Grid.SetColumn(tb,x); 网格设置行(tb,y); DynamicGrid.Children.Add(tb); } } }}
稍后,您可以玩边框和整个逻辑等。很久以前,我使用原语中的Togglebutton制作了如下内容: System.Windows.Controls.Primitives.ToggleButton tb=新建ToggleButton() 仅使用网格创建WPF解决方案
- Xaml文件:
- Cs文件:
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); fillWithToggles(); } public void fillWithToggles() { for (int i = 0; i < 10; i++) { ColumnDefinition gridCol = new ColumnDefinition(); gridCol.Name = "Column" + i.ToString(); DynamicGrid.ColumnDefinitions.Add(gridCol); } for (int i = 0; i < 10; i++) { RowDefinition gridRow = new RowDefinition(); gridRow.Name = "Row" + i.ToString(); DynamicGrid.RowDefinitions.Add(gridRow); } for (int x = 0; x < 10; x++) { for (int y = 0; y < 10; y++) { System.Windows.Controls.Primitives.ToggleButton tb = new ToggleButton(); tb.VerticalAlignment = VerticalAlignment.Stretch; tb.HorizontalAlignment = HorizontalAlignment.Stretch; Grid.SetColumn(tb, x); Grid.SetRow(tb,y); DynamicGrid.Children.Add(tb); } } }}
公共部分类主窗口:窗口 { 公共主窗口() { 初始化组件(); fillWithToggles(); } 公共空白fillWithToggles() { 对于(int i=0;i<10;i++) { ColumnDefinition gridCol=新ColumnDefinition(); gridCol.Name=“Column”+i.ToString(); DynamicGrid.ColumnDefinitions.Add(gridCol); } 对于(int i=0;i<10;i++) { RowDefinition gridRow=新的RowDefinition(); gridRow.Name=“Row”+i.ToString(); DynamicGrid.RowDefinitions.Add(gridRow); } 对于(int x=0;x<