2011-08-18 4 views
4

좋아, 그래서 나는 anwser에 대한 모든 것을 살펴 봤지만, 내가 그것을 본다면 그것을 알 수 있을지 궁금해지기 시작했습니다. WPF를 처음 사용하지만 몇 년 동안 C#에서 Windows Forms를 사용해 왔습니다.WPF : 코드가 뒤에 코드가 나타나지 않습니다.

내 질문 : "끌어서 놓기"된 격자 뒤의 코드에서 레이블에 액세스하여 이름을 바꿀 수없는 이유는 무엇입니까?

XML 코드 :

<Window x:Class="IMCommand.NewProblemWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="New Problem" Height="800" Width="800" Loaded="Window_Loaded"> 
    <Grid> 
     <GroupBox Header="Initial Detection and Recording" Height="168" HorizontalAlignment="Left" Margin="12,45,0,0" Name="groupBox1" VerticalAlignment="Top" Width="754" FontSize="15"> 
      <Grid> 
       <Label Content="Application/Server" Height="28" HorizontalAlignment="Left" Margin="6,6,0,0" Name="label1" VerticalAlignment="Top" /> 
       <TextBox Height="23" HorizontalAlignment="Left" Margin="144,11,0,0" Name="textBox1" VerticalAlignment="Top" Width="324" Background="#FFCBCBCB"></TextBox> 

       <Label Content="AE Problem Ticket #" Height="28" HorizontalAlignment="Left" Margin="6,52,0,0" Name="label2" VerticalAlignment="Top" /> 
       <TextBox Background="#FFCBCBCB" Height="23" HorizontalAlignment="Left" Margin="155,54,0,0" Name="BOX_AEProblem" VerticalAlignment="Top" Width="175" /> 

       <Label Content="Start Time" Height="28" HorizontalAlignment="Left" Margin="6,86,0,0" Name="label4" VerticalAlignment="Top" Width="85" /> 
       <TextBox Height="23" HorizontalAlignment="Left" Margin="97,91,0,0" Name="BOX_StartTime" VerticalAlignment="Top" Width="118" IsReadOnly="True" /> 

       <Label Content="Label" Height="28" HorizontalAlignment="Left" Margin="221,89,0,0" Name="LBL_StartTimeConvert" VerticalAlignment="Top" Width="128" /> 
      </Grid> 
     </GroupBox> 

     <GroupBox Header="Classification and Initial Support" Height="333" HorizontalAlignment="Left" Margin="12,260,0,0" Name="groupBox2" VerticalAlignment="Top" Width="754" FontSize="15"> 
      <Grid> 
       <Label Content="Description" Height="28" HorizontalAlignment="Left" Margin="6,96,0,0" Name="LBL_Description" VerticalAlignment="Top" /> 
       <RichTextBox Height="137" HorizontalAlignment="Left" Margin="97,96,0,0" Name="richTextBox1" VerticalAlignment="Top" Width="590" Background="#FFCBCBCB" Cursor="IBeam" ToolTip="Describe the problem..." VerticalScrollBarVisibility="Visible" SpellCheck.IsEnabled="True" FontSize="12" BorderBrush="#FF151414" /> 
       <RichTextBox Height="28" HorizontalAlignment="Left" Margin="97,44,0,0" Name="richTextBox2" VerticalAlignment="Top" Width="590" Background="#FFCBCBCB" /> 
       <Label Content="Summary" Height="28" HorizontalAlignment="Left" Margin="6,44,0,0" Name="label3" VerticalAlignment="Top" /> 
      </Grid> 
     </GroupBox> 
    </Grid> 
</Window> 

I가 refereing있어 특정 레이블이

<Label Content="Label" Height="28" HorizontalAlignment="Left" Margin="221,89,0,0" Name="LBL_StartTimeConvert" VerticalAlignment="Top" Width="128" /> 

내가 파일 뒤에 코드에 갈 때 "LBL_StartTimeConvert"라는 첫 번째 그룹 상자의 마지막 레이블입니다 , 나는 "LBL_StartTimeConvert"를 intellisense에 표시 할 수 없습니다. C# 코드에서이 레이블에 어떻게 액세스합니까? 라벨 텍스트를 변경해야합니다. 감사!

PS >> WPF (예 : WPF 101 또는 WPF for Dummies)를 배우는 데 도움이되는 유용한 자료/책을 보내 주시면 감사하겠습니다.

+0

코드 숨김 파일에서 LBL_StartTimeConvert를 사용할 때 프로젝트가 컴파일됩니까? IntelliSense에만 문제가 있다고 가정합니다. – Stephan

+0

아니요, 수동으로 이름을 입력하려고하면 즉시 오류가 발생합니다. – Tom

+0

질문에 답변하기에 충분한 정보가 없습니다. 어떤 방법으로 LBL_StartTimeConvert에 액세스하려고합니까? 코드 숨김 파일과 LBL_StartTimeConvert에 액세스 할 수있는 위치를 추가 할 수 있습니까? – chuckj

답변

5

가 잘 작동, 네임 스페이스 및 창 이름 뒤에 XAML 파일의 원인으로 코드에서 동일한 지 확인하십시오 또한 나는 액세스 할 수 있습니다 .

새로운 샘플 WPF 프로젝트를 만들고 <grid> 태그 안에 코드를 넣은 다음 확인하십시오.

3

이름 대신 x : 이름을 사용하십시오.
"x : 이름 : 개체 요소가 처리 된 후 런타임 코드에있는 인스턴스의 런타임 개체 이름을 지정합니다. 일반적으로 이러한 속성은 특히 CLR 백업 속성에 매핑되므로 런타임 코드를 자주 사용하여 초기화 된 XAML에서 명명 된 요소를 찾는 응용 프로그램 프로그래밍에 더 편리합니다. " 라벨 LBL_StartTimeConvert을 내 샘플 창에 코드를 붙여 넣을 때
참조 XAML 개요 Here

+1

x : 이름 및 이름은 위의 "x : 이름에 대한 WPF 정의 동등한 속성"으로 언급 되었기 때문에이 컨텍스트에서 동의어입니다. – chuckj

18

나는 동일한 문제가있었습니다. VS 재시작으로 해결되었습니다. 때로는 실제로 버그입니다.)

+3

은 나를 위해 일했습니다 =) – Florian

+0

너무 일했습니다! – Vasilievski

+0

이것은 실제로 받아 들여진 대답 이었음에 틀림 없다. 확인하고 다시 확인한 후 마침내 VS를 다시 시작하고 모두 정상입니다. – NappingRabbit

관련 문제