1、SilverlightにはNameScopeクラスが実装されてないため、
Python上で作成したオブジェクトはFindNameにひっかからない。
なので、強引だが、巡回して検索するFindNameExを作成。

2、スクリプト内でclr.AddReference("SilverlightApplication17")が効かないので、C#側で自分を参照設定。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Markup;

using IronPython.Hosting;
using IronPython.Runtime;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;

namespace SilverlightApplication17
{
public partial class Page: UserControl
{
public Page()
{
InitializeComponent();
_globals = _py.Runtime.Globals;
_globals.SetVariable("Page", this );

//clr.AddReference("SilverlightApplication17") <-- Python側で設定できなかったので逃げの一手
IronPython.Runtime.ClrModule.AddReference( IronPython.Runtime.DefaultContext.Default, Assembly.GetCallingAssembly() );
}


public UIElement FindNameEx( string nm )
{
return FindNameEx( LayoutRoot, nm );
}

static UIElement FindNameEx( Panel pa, string nm )
{
foreach( UIElement uie in pa.Children )
{
if ( uie is FrameworkElement)
{
if ( nm == ((FrameworkElement)uie).Name )
return uie; // found
}

if ( uie is Panel )
{
UIElement uie2 = FindNameEx( (Panel)uie, nm );

if ( uie2 != null )
return uie2;
}
}
return null; // not found
}