如何在c#中为按钮指定新位置? private void Hangman_onload() { 常数int btnSize=25; 对于(var i=65;i
来说,如果出于通常的原因坚持在代码隐藏中执行所有操作,那么看起来更像这样:如何在c#中为按钮指定新位置? private void Hangman_onload() { 常数int btnSize=25; 对于(var i=65;i,c#,xaml,button,uwp,C#,Xaml,Button,Uwp,来说,如果出于通常的原因坚持在代码隐藏中执行所有操作,那么看起来更像这样: private void Hangman_OnLoaded() { const int btnSize = 25; for (var i = 65; i <= 90; i++) { var btn = new Button { Content = (char)i }; btn.Width = btn.Height = btnSize; var
private void Hangman_OnLoaded()
{
const int btnSize = 25;
for (var i = 65; i <= 90; i++)
{
var btn = new Button { Content = (char)i };
btn.Width = btn.Height = btnSize;
var margin = btn.Margin;
margin.Left += btnSize + 100;
btn.Margin = margin;
GridMain.Children.Add(btn);
}
}
如果出于某种原因确实要使用网格
,则需要在网格
中定义行和列,并在每个按钮
上设置行和列值
XAML
等等
如果这是WPF(不是,但也许有一天做WPF的人会点击它),那么最好、最简单的解决方案是使用UniformGrid
而不是常规的Grid
,并在其上设置正确的行数和列数:
// Row zero, column zero
Grid.SetRow(btn, 0);
Grid.SetColumn(btn, 0);
对于您的情况,我使用的是Win7,无法对其进行测试。因为这些按钮只有一个字符(至少根据您的问题),所以项目的大小将始终相同。因此我建议您使用GridView和DataTemplate将ASCII字符作为按钮加载 将您的
Hangman_onload
更改为下方
<UniformGrid x:Name="GridMain" Rows="10" Columns="10">
</UniformGrid>
private void Hangman_onload()
{
List bindingData=新列表();
对于(var i=65;您好!谢谢您的快速回答!实际上它是UWP,我假设它也适用于UWP?@M.Kesküll您必须指定您正在使用的UI框架。否则,这个问题完全无法回答。也许VariableSizedWrapGrid
将完成与UniformGrid
相同的工作。我认为Grid
解决方案h显式ColumnDefinitions
和RowDefinitions
应该在UWP中工作。试一试。
// Row zero, column zero
Grid.SetRow(btn, 0);
Grid.SetColumn(btn, 0);
<UniformGrid x:Name="GridMain" Rows="10" Columns="10">
</UniformGrid>
private void Hangman_OnLoaded()
{
List<char> bindingData = new List<char>();
for (var i = 65; i <= 90; i++)
{
bindingData.Add((char)i);
}
variableGrid.DataContext = bindingData;
}
<GridView x:Name="variableGrid" ItemsSource="{Binding }">
<GridView.ItemTemplate>
<DataTemplate>
<Button Content="{Binding ''}" />
</DataTemplate>
</GridView.ItemTemplate>
</GridView>