2017-09-27 125 views
0

我在VS社區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

我想通了這個問題。計劃正在出錯。還不習慣在VS社區進行調試,不像VBA那麼直觀,這是我最習慣的。我相信這可能是由於默認設置,試圖找出如何讓它提供更多的反饋比它,因爲我在錯誤列表中顯示沒有錯誤顯然是不正確的。

所以錯誤是我試圖分配win.FindName('測試')win.Test。我在其他地方看過類似的東西,並且在此之前也有問題,所以我不確定要嘗試什麼,但是現在我知道我可以通過幾種不同的方式做到這一點

1)Test = win .FindName( '測試')(不包括勝利。在開始)
Test.Text = '你好,世界'

或者,簡單

2)win.Test.Text =「你好,世界'

我覺得我早些時候嘗試過第二個,但它現在正在工作,所以我肯定還有其他東西被打破了。

當前工作的代碼

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,而這往往沒有那麼多。 –