我是Windows 8.1开发新手,所以请原谅我,如果回答这个问题很明显,但我一直在殴打一段时间,并且无法使其工作。这里的情况:在Windows 8.1 XAML/C#应用程序中,我该如何精确设计按钮的样式?
我做了一个用户控件为了风格的按钮,以及添加额外的功能。下面是该代码:
<UserControl
x:Class="MyCalculator.CalculatorButton"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MyCalculator"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DesignHeight="300"
d:DesignWidth="400"
mc:Ignorable="d"
>
<!-- THIS GRID TAKES UP THE WHOLE WIDTH AND HEIGHT -->
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- THIS BUTTON TAKES UP THE WHOLE SIZE OF THE GRID -->
<Button
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
BorderBrush="Blue"
BorderThickness="1"
Background="AliceBlue"
Padding="0"
Content="How can I make this bigger?"
Foreground="Blue"
Grid.Row="0"
Grid.Column="0"
/>
</Grid>
</UserControl>
这里是什么样子的设计师
你会发现,按键显得既水平,垂直居中,并且是相当小的。但是,当我点击代码中的按钮时,网格的整个大小(占用设计器中的整个400 x 300区域)由按钮填充。
所以Button正在填充网格,填充该区域。但Button的边框和背景在Button的中间是非常小的。更糟的是,它甚至不能包含文本。这显然不是期望的外观和感觉。
我在做什么想要做?我想要AliceBlue按钮背景填充整个网格,填充整个400 x 300的区域。我想'我怎样才能让这个更大?'蓝色内容字符串在AliceBlue-ness的大行中垂直和水平居中,这将导致。
我已经尝试过在网格和按钮上的边距,填充,高度,宽度和其他属性的规范的无数组合。没有任何东西影响Button的AliceBlue区域的大小或位置。
显然我错过了一些东西。任何人都可以帮助我理解这是什么,以及如何格式化我的按钮(或一般的用户控件)以便按照我希望的方式进行设置?
在此先感谢您的帮助!
我不确定,但这里有几个想法......你可以包括你的Grid.RowDefinitions和Grid.ColumnDefinitions吗?你有没有尝试在你的Button上分配Grid.Row =“0”和Grid.Column =“0”,以便它知道它应该在那个位置? –
“我创建了一个用户控件来设计一个按钮的样式”......真的是WPF中的错误方法,您应该创建一个样式并使用根按钮类型并将样式应用到它。 –
嗨@RonBeyer,感谢您的输入。首先,我在WinRT中,而不是WPF,所以我不知道这是否会改变任何东西(我知道这些平台之间存在一些显着差异)。其次,我创建了一个样式并使用根按钮类型并将样式应用于该样式,但在我的实际页面上下文中不起作用,因此为了找出我试图找出的部分,我创建了一个样式UserControl,所以我可以专门针对这一点进行迭代。而且,最终,它会比Button更多地参与其中,因此自定义UserControl似乎是最佳方式。 –