我试图在WPF中创建一个小的TicTacToe应用程序来练习编码。我在Xaml中创建了一个主窗口,其中两个ContentControl一个挨着另一个,我想在用户玩游戏时显示主窗口中的游戏和侧边的记分牌(它们是同一网格的两个相邻列),这些将由2个不同的UserControl处理,这就是为什么两个ContentControl
我的登录屏幕是单窗口的,当我加载它的用户控件时,它只覆盖了我加载它的ContentControl,这留下了一个可怕的白色条带。我可以通过添加一个新的用户控件来创建一个补丁,以便在空的内容控件中加载,但我希望登录屏幕可以扩展到两个控件,因为它看起来会更好,我这样做是为了学习。
有没有办法在两个用户控件之间加载一个用户控件,或者拉伸它来覆盖空的控件?
主窗口的Xaml为:
<Window x:Class="TicTacToe_Main_form.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TicTacToe_Main_form"
mc:Ignorable="d"
Title="Tic-Tac-Toe" Height="450" Width="600"
ResizeMode="NoResize">
<Grid>
<!--Main page divided in 2 parts to have game on the left and score on the right-->
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions >
<ContentControl x:Name="ActionWindow" Grid.Column="0" />
<ContentControl x:Name="SideWindow" Grid.Column="1" />
</Grid>
XAML背后的代码是
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
ActionWindow.Content = new StartNewGame();
}
}
提前感谢,如果你对如何改进我提问的方式有任何建议,我很乐意“倾听”
1条答案
按热度按时间lf3rwulv1#
有几个变体,但你不使用MVVM,这就是为什么我给你一个变体,但它不是很优雅。
实际上,我们创建另一个ContentControl并在两个列上拉伸它,示例化这个ContentControl的内容,我们只处理可见性。
下面我们做示例化,然后我们有两个可见性状态。