XAML中的WPF程序问题不能正确显示按钮

我在将“ Visual Studio Express 2013 for Windows Desktop ”中的WPF程序移至“ Visual Studio Community 2015 ”时遇到了问题。

我原来的WPF程序是在“ VS Express 2013 for Windows Desktop ”中创建的。 它依赖于能够将网格嵌入按钮。 在该网格上(按钮内),我会放置矩形形状。 它在VS Express 2013中工作正常,但在VS Community 2015中无法正常工作。

下面的例子是在VS Express 2013中创建的。 它正确地显示了一个红色边框矩形和一个带白色十字的黑色按钮。

<Window x:Class="TestErrors.MainWindow"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="MainWindow" Height="200" Width="200">
  <Canvas>
      <Rectangle
      Stroke="Red"
      StrokeThickness="10"
      Width="50"
      Height="50"
      Canvas.Left="75"
      Canvas.Top="20"/>
      <Button
          Width="0"
          Height="0"
          Canvas.Left="100"
          Canvas.Top="100">
          <Canvas>
              <Rectangle
              Fill="Black"
              Width="30"
              Height="30"
              Canvas.Left="-15"
              Canvas.Top="-15"/>
              <Rectangle
              Fill="White"
              Width="4"
              Height="20"
              Canvas.Left="-2"
              Canvas.Top="-10"/>
              <Rectangle
              Fill="White"
              Width="20"
              Height="4"
              Canvas.Left="-10"
              Canvas.Top="-2"/>
          </Canvas>
      </Button>
  </Canvas>
</Window>

在这里输入图像描述

VS Express 2013上面的图片是正确的...带有白色十字的黑色按钮显示正确。

在下面的示例中, Visual Studio Community 2015中的相同XAML仅显示红色矩形。 它没有按我的预期工作。

<Window x:Class="TestErrors.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:TestErrors"
    mc:Ignorable="d"
    Title="MainWindow" Height="200" Width="200">
  <Canvas>
      <Rectangle
      Stroke="Red"
      StrokeThickness="10"
      Width="50"
      Height="50"
      Canvas.Left="75"
      Canvas.Top="20"/>
      <Button
          Width="0"
          Height="0"
          Canvas.Left="100"
          Canvas.Top="100">
          <Canvas>
              <Rectangle
              Fill="Black"
              Width="30"
              Height="30"
              Canvas.Left="-15"
              Canvas.Top="-15"/>
              <Rectangle
              Fill="White"
              Width="4"
              Height="20"
              Canvas.Left="-2"
              Canvas.Top="-10"/>
              <Rectangle
              Fill="White"
              Width="20"
              Height="4"
              Canvas.Left="-10"
              Canvas.Top="-2"/>
          </Canvas>
      </Button>
  </Canvas>
</Window>

在这里输入图像描述

里面有白色十字架的黑色按钮在哪里? 什么改变了我的原始代码?


您的按钮宽度和高度设置为0.根据需要更改值或选择无按钮的方法。


我要回答我自己的问题。 我找到了解决问题的办法。 显然老版本的WPF使用下面的代码

 <Button
      Width="0"
      Height="0"

旧版本将这些“0”设置视为“自动”。 但是现在您必须特别使用“自动”或“自动”这个词......“0”不会再给出想要的结果。

 <Button
      Width="Auto"
      Height="Auto"

 <Button
      Width="auto"
      Height="auto"

以上两点解决了这个问题。

链接地址: http://www.djcxy.com/p/61319.html

上一篇: WPF Program Issue in XAML not displaying Buttons properly

下一篇: How can I get WPF and Windows Phone templates in Expression Blend 2013?