2013-09-26 21 views
0

我想爲Windows 8 Phone製作一個密碼拼圖。 .NET框架是4.5'System.Windows.Controls.Grid'沒有包含'setRow'WP 8項目的定義

我遇到此以下錯誤:'System.Windows.Controls.Grid' 在Grid.setRow不包含關於 'setRow'定義(TXT,X);我要動態創建文本框,無需使用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> 

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

回答

相關問題