【问题标题】:Canvas in WrappanelWrappanel 中的帆布
【发布时间】:2013-03-05 01:10:36
【问题描述】:

我遇到了一个问题,谁能告诉我这段代码有什么问题:

首先我创建 2 个画布:

private void AddItem()
    {
        Canvas myCanvas = new Canvas();
        Canvas myCanvas2 = new Canvas();
        myCanvas2.Height = 128;
        myCanvas2.Width = 104;
        myCanvas.Background = new SolidColorBrush(Colors.Blue);
        myCanvas.Height = 200;
        myCanvas.Width = 350;
        myCanvas2.Margin = new System.Windows.Thickness(5,10,0,0);
        myCanvas.Margin = new System.Windows.Thickness(66, 10, 0, 0);

然后我创建三个文本块:

首先:将 TextBlock 添加到第一个 Canvas:

TextBlock TextBlock1= new TextBlock();
    TextBlock1.FontSize = 48;
    TextBlock1.Text = Fach.Text;
    Canvas.SetTop(TextBlock1, 10);
    Canvas.SetLeft(TextBlock1, 29);
    myCanvas.Children.Add(TextBlock1);

第二个:将第二个 TextBlock 添加到第一个 Canvas:

TextBlock TextBlock2= new TextBlock();
    TextBlock2.FontSize = 24;
    TextBlock2.Text = Raum.Text;
    Canvas.SetTop(TextBlock2, 79);
    Canvas.SetLeft(TextBlock2, 31);
    myCanvas.Children.Add(TextBlock2);

第三:将第二个 TextBlock 添加到第二个 Canvas:

TextBlock TextBlock3 = new TextBlock();
    TextBlock3.FontSize = 20;
    TextBlock3.Text = Zeit;
    Canvas.SetTop(TextBlock3, 36);
    Canvas.SetLeft(TextBlock3, 10);
    myCanvas2.Children.Add(TextBlock3);

将 myCanvas 和 myCanvas2 添加到 wrappanel:

wrapPanel.Children.Add(myCanvas);
    wrapPanel.Children.Add(myCanvas2);
    }
    };

第一个 Canvas(myCanvas) 出现(框),但第二个 Canvas(myCanvas2) 应该出现在 myCanvas 前面。有人知道为什么吗?因为瓦帕内尔?我该如何更改?

编辑:Xaml

  <phone:PivotItem x:Name="Montag" Header="Montag" Margin="24,27,0,1">



                <ScrollViewer VerticalScrollBarVisibility="Auto" >


                        <toolkit:WrapPanel x:Name="wrapPanel" Orientation="Vertical"/>


                </ScrollViewer>  

</phone:PivotItem>

【问题讨论】:

  • 我只是复制粘贴了你的代码,它工作正常,我可以看到所有的 Canvas 和 TextBoxes。
  • 哦,只是我的代码中的一个错字!但我希望第二个 Canvas 位于第一个 Canvas 的左侧/前面你知道怎么做吗
  • 第一个问题...您正在使用 C# 编写 xaml。其次,您完全错过了绑定数据的好处。
  • 哦..好吧,这是我的第一个 Windows Phone 应用程序,所以我并不是很喜欢我能做的所有事情!我正在使用 c#,因为我想在运行时动态创建这些画布。并且无法弄清楚如何使用 xaml 来做到这一点
  • @user2127925 通常你会拥有某种绑定到某种类型的可观察集合的 ItemsControl,然后使用 DataTemplates 来显示特定类型的数据。我强烈建议您研究 MVVM 并创建一些原型来了解 WPF/Silverlight/WP UI 开发背后的真正力量。

标签: c# windows canvas windows-phone-8


【解决方案1】:

请仔细检查您的代码。我猜这行是不正确的:

TextBlock3.Text = Zeit;

我认为您应该将“.Text”添加到 Zeit =>“Zeit.Text”;

其他行似乎正确。

希望能帮助你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2013-12-01
    • 2021-08-23
    相关资源
    最近更新 更多