2017-09-27 3 views
0

Ich verwende IronPython in VS Community 2017. Ich habe ein seltsames Problem, das ich nicht verstehe, und ich bin sicher, ist einfach, kann aber nicht finde irgendjemanden, der es hat, was mich noch mehr verwirrt.IronPython - WPF-Fenster wird nicht angezeigt, aber nicht sicher, warum

Ich habe diesen sehr einfachen Code zu versuchen, den Wert von Text in einem Feld in der XAML definiert zu manipulieren.

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> 

Offensichtlich hat dies nichts tun interessant noch, und ich versuche nur zu lernen, aber dies sehr einfach hangup macht keinen Sinn für mich.

* Ich wollte das XAML von der Python oben trennen, aber der Editor auf dieser Website ist jenseits bizarr.

Antwort

1

Ich habe das Problem herausgefunden. Das Programm war fehlerhaft. Ich bin noch nicht gewohnt, in der VS Community zu debuggen, nicht ganz so intuitiv wie VBA, mit dem ich am meisten vertraut bin. Ich bin mir sicher, dass dies auf die Standardeinstellungen zurückzuführen sein könnte. Ich versuchte herauszufinden, wie ich es dazu bringen konnte, ein bisschen mehr Feedback zu geben, da ich auf der Fehlerliste war, die keine Fehler zeigte, was offensichtlich nicht richtig war.

Also der Fehler war ich versuche win.FindName ('test') zu gewinnen.Test. Ich hatte so etwas auf einer anderen Website gesehen und hatte vorher auch Probleme, also war ich mir nicht sicher, was ich versuchen sollte, aber jetzt weiß ich, dass ich das auf verschiedene Arten machen kann

1) Test = gewinnen .FindName ('Test') (ohne Sieg. am Anfang)
Test.Text = 'Hallo, Welt'

Oder einfacher

2) win.Test.Text = ‚Hallo, Welt '

Ich fühle mich wie ich versuchte das zweite zuvor, aber es funktioniert jetzt, also bin ich mir sicher, dass etwas anderes kaputt war.

Aktuelle Arbeitscode

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

Haben Sie eine leichte Korrektur auf dem oberen als auch, scheinbar win.Test = win.FindName (‚Test‘) ist in Ordnung, es ist nur, dass alles ist Groß- und Kleinschreibung, die andere Sache ist, Ich bin noch nicht so sehr daran gewöhnt, von VBA zu kommen, was dazu neigt, nicht viel davon zu haben. –

Verwandte Themen