2012-01-31 4 views
-4

私はアプリケーションを構築しようとしています。私のクラスは、グリッド、キャンバス、ウィンドウのボタンなどのアイテムにアクセスできるようにしたい。Visual Studio:クラスのアイテムにアクセスするには?

しかし、これらのアイテムはメインからのみ呼び出すことができます。
私は参照を使用しようとしましたが、私の試みは完全な失敗でした。

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="590" Width="855"> 
    <Grid> 
     <Canvas Height="428" HorizontalAlignment="Left" Margin="12,12,0,0" Name="myCanvas" VerticalAlignment="Top" Width="647" Background="White"> 
      <Label Content="Label" Height="29" Name="Label1" Canvas.Left="283" Canvas.Top="0" /> 
      <Label Content="Label" Height="28" Name="Label2" Canvas.Left="329" Canvas.Top="1" /> 
      <Rectangle Height="30" Width="30" Fill="#49D8FF00" Canvas.Left="83" Canvas.Top="164" Name="user"></Rectangle> 
      <Button Canvas.Left="593" Canvas.Top="6" Content="FindPath" Height="23" Name="button1" Width="88" Click="button1_Click" /> 
      <Label Canvas.Left="568" Canvas.Top="66" Content="Display Map here" Height="251" Width="253" Name="mapDisplayer" /> 
     </Canvas> 
    </Grid> 
</Window> 

これは私のプログラムのためのXAMLコードです。私はこれらの多くのアイテムの1つにアクセスしたいです。 私は各項目の名前を使って呼び出しようとしました。 myCanvasなどですが、名前 'myCanvas'が現在のコンテキストに存在しないというエラーが表示されます。

+4

あなたがこれまでに試したものを私たちに示してください。 –

+2

あなたのクラス(またはその一部)を教えてもらえますか?適切な 'using'ステートメントを上に置くことを忘れましたか? –

+0

これはVBかC#の質問ですか?私は "Visual Basic C#"が何であるか分かりません。 C#タグは正しいですか?おそらくあなたは "Visual Studio C#"を意味していたでしょうか?私たちは間違いなくより多くの情報とコードを必要とします... –

答えて

2

コードはどのように実装されていますか?私はあなたの質問を理解するか分からないが、私はあなたがメインフォームのインスタンスを取得する必要があると思う。例えば

class myClass 
{ 
    public myClass(Window1 instance) 
    { 
     instance.myGrid.Width= 512; 

     //Window1 .myGrid.Width= 512; will not work because myGrid is not static. 
    } 
} 

public partial class Window1 : Window 
{ 
    public Window1() 
    { 
     myClass m = new myClass(this); 
    } 
} 
+0

私は分離されたクラスを持っています。この別のクラスは、クラス内のCanvasを操作できるように、MainWindow内のCanvasツールを要求するコンストラクタを持っています。それは意味をなさないでしょうか? – Bug

+0

それから、私が提供したコードがあなたの探しているものです。クラスを作成するときには、 'this'(現在のインスタンス)をクラスに渡して使用できるようにする必要があります。 – Corylulu

+0

Form1にアクセスするにはどうすればよいですか? – Bug

関連する問題