簡體   English   中英

'System.Windows.Controls.Grid'不包含'setRow'WP 8項目的定義

[英]'System.Windows.Controls.Grid' does not contain a definition for 'setRow' WP 8 project

我正在嘗試為Windows 8 Phone創建密碼難題。 .net框架是4.5

我遇到以下錯誤: 'System.Windows.Controls.Grid'在Grid.setRow(txt,x)處不包含'setRow'的定義 我想動態創建文本框,而不使用XAML ...

就我所知,Windows.Controls.Grid具有靜態方法Grid.setRow(UIelement,int)。

這是MainPage.xaml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using Microsoft.Phone.Controls;
using System.Windows.Resources;
using System.IO;

namespace CryptogramPuzzle
{
public partial class MainPage : PhoneApplicationPage
{
    List<string> quotes;
    List<TextBox> tb;
    int length = 0;
    int width;
    int height;
    // Constructor
    public MainPage()
    {
        InitializeComponent();

        Random r = new Random();
        string encodedStr;

        InitializeComponent();

        getQuotes();
        int rInt = r.Next(0, quotes.Count()); //generates random index for a quote selection
        encodedStr = Encryption.encode(quotes[rInt]);
        length = encodedStr.Length;
        createTxtBox(0, 0);
    }

    /// <summary>
    /// Loads quotes from the text file
    /// </summary>
    public void getQuotes()
    {
        quotes = new List<string>();
        try
        {
            StreamResourceInfo sInfo = Application.GetResourceStream(new Uri("/CryptogramPuzzle;component/Resources/Puzzles.txt", UriKind.Relative));
            StreamReader sr = new StreamReader(sInfo.Stream);//feeds the reader with the stream
            string line;
            while ((line = sr.ReadLine()) != null)
            {
                quotes.Add(line);
            }
            sr.Close();
            // System.Console.WriteLine(quotes[0]);

        }
        catch (Exception e)
        {
            throw (e);
        }
    }

    public void createTxtBox(int x, int y)
    {
        TextBox txt = new TextBox();
        RowDefinition newRow = new RowDefinition();
        newRow.Height = new GridLength(0, GridUnitType.Auto);
        ContentPanel.RowDefinitions.Add(newRow);
        txt.MinHeight = 10;
        txt.MinHeight = 10;
        ContentPanel.Children.Add(txt);
        Grid.setRow(txt, x);

    }


}
 }

這是我的MainPage.xaml

<phone:PhoneApplicationPage
x:Class="CryptogramPuzzle.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True">

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <!-- LOCALIZATION NOTE:
        To localize the displayed strings copy their values to appropriately named
        keys in the app's neutral language resource file (AppResources.resx) then
        replace the hard-coded text value between the attributes' quotation marks
        with the binding clause whose path points to that string name.

        For example:

            Text="{Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}"

        This binding points to the template's string resource named "ApplicationTitle".

        Adding supported languages in the Project Properties tab will create a
        new resx file per language that can carry the translated values of your
        UI strings. The binding in these examples will cause the value of the
        attributes to be drawn from the .resx file that matches the
        CurrentUICulture of the app at run time.
     -->

    <!--TitlePanel contains the name of the application and page title-->
    <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
        <TextBlock Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
        <TextBlock Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    </StackPanel>

    <!--ContentPanel - place additional content here-->
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

    </Grid>

    <!--Uncomment to see an alignment grid to help ensure your controls are
        aligned on common boundaries.  The image has a top margin of -32px to
        account for the System Tray. Set this to 0 (or remove the margin altogether)
        if the System Tray is hidden.

        Before shipping remove this XAML and the image itself.-->
    <!--<Image Source="/Assets/AlignmentGrid.png" VerticalAlignment="Top" Height="800" Width="480" Margin="0,-32,0,0" Grid.Row="0" Grid.RowSpan="2" IsHitTestVisible="False" />-->
</Grid>

請幫助我解決此錯誤,變得非常絕望! 謝謝。

如果這是一種標准框架方法,那么我很確定標准Pascal框式規則(至少MS遵循的准則 )規定它將被稱為SetRow而不是setRow

確實如此

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM