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 코드입니다. 나는이 많은 품목 중 하나에 접근하고 싶다. 각 항목의 이름을 사용하여 전화를 걸려고했습니다. 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의 캔버스 도구를 요청하는 생성자가 필요합니다. 이해가 되니? – Bug

+0

그러면 내가 제공 한 코드가 당신이 원하는 것입니다. 클래스를 생성 할 때 'this'(현재 인스턴스)를 클래스에 전달해야 사용할 수 있습니다. – Corylulu

+0

Form1에 액세스하려면 어떻게해야합니까? – Bug

관련 문제