2017-09-27 14 views
0

VS Community 2017에서 IronPython을 사용하고 있습니다. 이해가 안되는 이상한 문제가 있습니다. 간단하지만 확실하지 않습니다. 그것을 가지고있는 다른 누군가를 찾아라. 그것은 나를 더욱 혼란스럽게한다.IronPython - WPF 창이 표시되지 않지만 이유가 확실하지 않습니다.

xaml에 정의 된 상자의 텍스트 값을 조작하려고하는이 간단한 코드가 있습니다.

class MyWindow(Window): 
    def __init__(self): 
wpf.LoadComponent(self, 'WpfApplication1.xaml')  

win = MyWindow() 
win.Test = win.FindName('test') 
win.Test.Text = 'Hello, World' 
Application().Run(win) 

XAML

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="WpfApplication1" Height="300" Width="420.408"> 
    <TextBox x:Name="Test" MinWidth="100" Margin="14,79,98,155"/> 
</Window> 

는 분명히 이것은 흥미로운 아무것도하지 않습니다 아직, 난 그냥 배우려고 노력하고있어,하지만 아주 기본적인 끊기 나에게 이해가되지 않습니다.

* 위의 Python과 XAML을 구분하고 싶지만이 사이트의 편집기는 기괴합니다.

답변

1

문제를 파악했습니다. 프로그램에서 오류가 발생했습니다. 아직 VBA와 같이 직관적이지 않은 VS 커뮤니티에서의 디버깅에는 익숙하지 않습니다. 그게 기본 설정으로 인한 것일 수도 있습니다. 오류가 아니라는 것을 보여주는 에러 목록을 보았을 때보 다 조금 더 피드백을 줄 수있는 방법을 찾으려고했습니다.

그래서 win.FindName ('test')를 win.Test에 할당하려고 시도하는 오류가 발생했습니다. 나는 다른 곳의 사이트에서 이와 같은 것을 보았고 그 전에도 문제가 있었으므로 무엇을 시도해야할지 확신하지 못했지만 이제는 여러 가지 방법으로이 작업을 수행 할 수 있습니다.

1) Test = win .FindName는 ('테스트') (승리를 제외하고. 시작시)
Test.Text = '안녕하세요 세계'

또는 간단

2) win.Test.Text = '안녕하세요, 세계 '

이전에 2 번째를 시도한 것처럼 느껴졌지만 지금은 작동하고 있으므로 다른 것이 손상된 것 같습니다.

현재 작업 코드

import wpf 

from System.Windows import Application, Window 

class MyWindow(Window): 
    def __init__(self): 
    wpf.LoadComponent(self, 'WpfApplication1.xaml')   

win = MyWindow() 
Test = win.FindName('Test') 
Test.Text = 'Hello, World' 
Application().Run(win) 
+0

분명히 ('테스트') 그냥 모든 것이있어, 괜찮 민감한 경우, 또 다른 한가지는 win.Test = win.FindName입니다, 위의도에 약간의 보정을 가지고 나는 아직 익숙하지 않은데, VBA에서 왔는데, 그 중 많은 부분을 차지하지 않는 경향이 있습니다. –