Как заставить контролы Dave Relyea работать в Silverlight 1.1 Alpha Refresh

[ratings] Любой кто решит написать на Silverlight что-нибудь серьезное сейчас столкнется с проблемой поиска или написания своих контролов (TextBox, Button, etc). Так как свои контролы сейчас писать почему-то не хотелось я порылся в поисках готовых контролов в сети. Оказалось есть лишь 2 достойных альтернативы в данный момент, хотя они обе мне не нравятся:

Во первых, это – http://www.netikatech.com/ – Реализация WinForms для Silverlight и Flash. Но мне хотелось получить контролы WPF, а не WinForms.

Во вторых, это – контролы, которые реализовал Dave Relyea и выложил тут. Тут очень ограниченный набор, но хотя бы есть Grid и StackPanel. Это не полноценный набор, но для экспериментов с Alpha версией вполне сойдет.

Контролы Дейва были написаны еще для первой альфа версии, поэтому чтобы они заработали нужно проделать некие манипуляции. А именно всего одну: в Alpha Refresh версии зачем то решили выкинуть Visibility.Hidden, а оставить только Visibility.Collapsed, под предлогом, что все равно сейчас работают одинаково. Поэтому нужно просто заменить Hidden на Collapsed и все начнет работать.

Также я столкнулся с ошибкой AG_E_INVALID_ARGUMENT 2210 Error, которая возникает при неправильном указании ресурсов. Для того чтоб все заработало нужно в свойствах Xaml файлов контролов указать, что они являются Embedded Resource:

А также заменить во всех вызовах функции GetManifestResourceStream аргумент на строку формата “Namespace.folder.xamlfile”. Например:

public TextBox()
     {
           System.IO.Stream s = this.GetType().Assembly.GetManifestResourceStream("MyTest.Controls.TextBox.xaml");
           //.....

После этих операций у меня все заработало.