winui: Grid.SetRow() doesn't work
Closed this issue · 0 comments
ynkdir commented
from win32more.Microsoft.UI.Xaml import Window
from win32more.Microsoft.UI.Xaml.Controls import Button, ColumnDefinition, Grid, RowDefinition
from win32more.Windows.Foundation import PropertyValue
from win32more.xaml import XamlApplication
class App(XamlApplication):
def OnLaunched(self, args):
win = Window()
grid = Grid()
grid.RowDefinitions.Append(RowDefinition())
grid.RowDefinitions.Append(RowDefinition())
grid.RowDefinitions.Append(RowDefinition())
grid.ColumnDefinitions.Append(ColumnDefinition())
grid.ColumnDefinitions.Append(ColumnDefinition())
grid.ColumnDefinitions.Append(ColumnDefinition())
for row in range(3):
for col in range(3):
button = Button()
button.Content = PropertyValue.CreateString(f"{row},{col}")
if 1:
# Grid.SetRow() and SetColumn() doesn't work. It works in Visual Studio template project.
# OSError: exception: access violation reading 0x0000000000000010
Grid.SetRow(button, row)
Grid.SetColumn(button, col)
else:
# SetValue() works.
button.SetValue(Grid.RowProperty, PropertyValue.CreateInt32(row))
button.SetValue(Grid.ColumnProperty, PropertyValue.CreateInt32(col))
grid.Children.Append(button)
win.Content = grid
win.Activate()
XamlApplication.Start(App)