インターネット経由でxamlを取得する例とcs側でボタンを追加する例です。
あとは、こんな感じでIronPythonなどのスクリプト言語と接続できればいいのですが。



using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.IO;
using System.Net;
using System.Windows;
using System.Windows.Markup;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Navigation;

namespace ConsoleApplication1
{
class Program
{
[STAThread]
static void Main(string[] args)
{
// http経由でxamlを受け取る場合
System.Net.WebClient client = new WebClient();
Byte [] data = client.DownloadData( "http://localhost/Window1.xaml" );
MemoryStream st = new MemoryStream( data );

// Stream st = File.OpenRead( @"E:\work_blend\test\Window1.xaml" );

Window mainwnd = (Window)XamlReader.Load( st );
mainwnd.Height = 480;
mainwnd.Width = 640;
mainwnd.Title = "hoi";


Button btn = (Button)mainwnd.FindName( "button1" );
btn.Click += new RoutedEventHandler(btn_Click);


Button btn2 = new Button();
btn2.Click += new RoutedEventHandler(btn_Click2);
btn2.Name = "button2";
btn2.Width = 100;
btn2.Height = 40;
btn2.Content = "ボタン2";

Grid grid = (Grid)mainwnd.FindName( "grid1" );
grid.Children.Add( btn2 );

Application ap = new Application();
ap.Run( mainwnd );

}

static void btn_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show( "ok" );
}
static void btn_Click2(object sender, RoutedEventArgs e)
{
MessageBox.Show( (string)((Button)sender).Content );
}

}
}