<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>development adventures &#187; WPF</title>
	<link>http://blog.joachim.at</link>
	<description>joachim kerschbaumer about dot &#38; net</description>
	<pubDate>Fri, 18 Dec 2009 11:17:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Using the new WPF Ribbon with CompositeWPF</title>
		<link>http://blog.joachim.at/?p=44</link>
		<comments>http://blog.joachim.at/?p=44#comments</comments>
		<pubDate>Thu, 13 Nov 2008 16:45:22 +0000</pubDate>
		<dc:creator>jkersch</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[WPF]]></category>

		<category><![CDATA[c#]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[CompositeWPF]]></category>

		<category><![CDATA[Ribbon]]></category>

		<guid isPermaLink="false">http://blog.joachim.at/?p=44</guid>
		<description><![CDATA[When using the new WPF Ribbon CTP with CompositeWPF (aka Prism), you probably want your modules to fill the ribbon with tabs. To let modules add content to your shell window, you have to mark the designated areas as Region.When trying to add a Region name to the ribbon with some xaml code like this [...]]]></description>
			<content:encoded><![CDATA[<p>When using the new WPF Ribbon CTP with CompositeWPF (aka Prism), you probably want your modules to fill the ribbon with tabs. To let modules add content to your shell window, you have to mark the designated areas as Region.When trying to add a Region name to the ribbon with some xaml code like this :<br />

<pre name="code" class="xml">&lt;r:Ribbon cal:RegionManager.RegionName="ApplicationRibbon"&gt; ....&lt;/r:Ribbon&gt;</pre>
<p>you will get a KeyNotFoundException. <br />Diving a little bit deeper shows you that the RegionManager cannot find a RegionAdapter mapping for <i>Microsoft.Windows.Controls.Ribbon.Ribbon</i>.That means that we have to write a RegionAdapter for the Ribbon Control.Implementing IRegionAdapter should suffice but as we are lazy, we could just inherit from RegionAdapterBase&lt;T&gt; (where our T will be Ribbon) and we will end up with something short like this:</p>
<pre name="code" class="c-sharp">
 public class RibbonRegionAdapter : RegionAdapterBase&lt;Ribbon&gt;
    {
        protected override void Adapt(IRegion region, Ribbon regionTarget)
        {
            region.Views.CollectionChanged += delegate {
                foreach (var tab in region.Views.Cast&lt;RibbonTab&gt;())
                {
                    if (!regionTarget.Tabs.Contains(tab))
                    {
                        regionTarget.Tabs.Add(tab);
                    }
                }
            };
        }

        protected override IRegion CreateRegion()
        {
            return new SingleActiveRegion();
        }
    }
</pre>
<p>
at least we have to Register this RegionAdapter in our bootstrapper. Therefore we just override the Bootstrapper&#8217;s ConfigureRegionAdapterMapping&#8217;s method:<br />
</p>
<pre name="code" class="c-sharp">
protected override RegionAdapterMappings ConfigureRegionAdapterMappings()
        {
            var mappings = Container.TryResolve&lt;RegionAdapterMappings&gt;();
            if (mappings != null)
            {
                mappings.RegisterMapping(typeof(Ribbon), new RibbonRegionAdapter());
            }
            return mappings;
        }
</pre>
<p>Now we should be able to add RibbonTab&#8217;s to the ribbon from within our Modules using RegionManager (we can easily resolve this from our IoC Container).<br />
<br />
This is no full featured quality guide for using the Wpf Ribbon control with CompositeWpf. It just shows that writing custom region adapters is actually quite an easy thing.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joachim.at/?feed=rss2&amp;p=44</wfw:commentRss>
		</item>
		<item>
		<title>WPF WebBrowser control issues with AllowsTransparency = True</title>
		<link>http://blog.joachim.at/?p=39</link>
		<comments>http://blog.joachim.at/?p=39#comments</comments>
		<pubDate>Mon, 07 Jul 2008 13:55:05 +0000</pubDate>
		<dc:creator>jkersch</dc:creator>
		
		<category><![CDATA[WPF]]></category>

		<category><![CDATA[c#]]></category>

		<category><![CDATA[Webbrowser]]></category>

		<guid isPermaLink="false">http://blog.joachim.at/?p=39</guid>
		<description><![CDATA[I recently played around with the new Webbrowser control delivered with the SP1 update of .NET 3.5 . 
But when i tried to use it in a WPF Window that has its WindowStyle set to None and AllowsTransparency to True (due to some custom window drawing), i noticed that the Webbrowser control disappeared.  
The Webbrowser [...]]]></description>
			<content:encoded><![CDATA[<p>I recently played around with the new Webbrowser control delivered with the SP1 update of .NET 3.5 . <br />
But when i tried to use it in a WPF Window that has its <u>WindowStyle</u> set to None and <u>AllowsTransparency</u> to True (due to some custom window drawing), i noticed that the Webbrowser control disappeared.  </p>
<p>The Webbrowser control is just a native Win32 Hwnd that gets hosted inside some WPF content area. But it&#8217;s quite annoying that the Transparency stuff gets pass on to it. <br />I wonder how i could circumvent this limitation as i don&#8217;t need transparency in the webbrowser control itself. Its just to get some homegrown, fancy-looking window style.</p>
<p>I&#8217;m looking forward to see this fixed by Microsoft in some future release.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joachim.at/?feed=rss2&amp;p=39</wfw:commentRss>
		</item>
		<item>
		<title>(Very) simple WPF PropertyGrid in 20 minutes</title>
		<link>http://blog.joachim.at/?p=36</link>
		<comments>http://blog.joachim.at/?p=36#comments</comments>
		<pubDate>Tue, 13 May 2008 14:29:31 +0000</pubDate>
		<dc:creator>jkersch</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[WPF]]></category>

		<category><![CDATA[c#]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[PropertyGrid]]></category>

		<guid isPermaLink="false">http://blog.joachim.at/?p=36</guid>
		<description><![CDATA[Everyone that has ever worked with the WinForms PropertyGrid will miss it in WPF.
Therefore i wrote this tiny turorial on how to write your own very basic PropertyGrid on top of WPF. 
Disclaimer:This is not a ready to use fully-featured control for production use. It just shows in a very simple manner how to get [...]]]></description>
			<content:encoded><![CDATA[<p>Everyone that has ever worked with the WinForms PropertyGrid will miss it in WPF.<br />
<br />Therefore i wrote this tiny turorial on how to write your own very basic PropertyGrid on top of WPF. </p>
<p><b><font color="#ff0000">Disclaimer:</font></b>This is not a ready to use fully-featured control for production use. It just shows in a very simple manner how to get Properties and their values from objects via reflection and show them using WPF and databinding.<br />
It is by far not a replacement of commercial WPF PropertyGrids (e.g. <a href="http://www.mindscape.co.nz/products/WPFPropertygrid/">MindScape WPF PropertyGrid</a>), more a fast solution for minimal requirements.</p>
<p>This simple PropertyGrid will not contain special Editors for non trivial data types. For now we are confident with a simple TextBox for demonstration purposes.<br />
We will see that because of the automatic conversion features of wpf , we&#8217;re easily able to edit not only strings, but also int&#8217;s, double&#8217;s, Color&#8217;s, SolidColorBrush&#8217;es and so on in a simple TextBox.<br />
<br />
Our WPF PropertyGrid clone should look like this:</p>
<p><center><img src="http://blog.joachim.at/images/pg1.png"></center><br />
</p>
<ul>
<li>TextBox for searching (filtering) properties. This is especially usefule if your classes contain lots of properties</li>
<li>a panel (here StackPanel) that contains all the PropertyName/PropertyValue pairs (wrapped up in a Scrollviewer)</li>
<li>TextBox for descriptions that we obtain from the System.ComponentModel.DescriptionAttribute-Attribute of the property selected</li>
</ul>
<p>
First we want to realize the simple structure shown above in XAML to get started.<br />
After short time this may look like this:<br />
<center><img src="http://blog.joachim.at/images/pg2.png"></center><br />
<br />
Next we reate a UserControl as a Wrapper for our Properties. This just contains a TextBlock (for the property name) and a TextBox (for the property value) bound to properties that we defined in our code-behind file.<br />
<br />
Now where the actual work is done:</p>
<pre name="code" class="c-sharp">
foreach (PropertyDescriptor property in TypeDescriptor.GetProperties(value)){

	if (!property.IsBrowsable) continue; //not browsable. ignore

        PropertyItem currentProperty = new PropertyItem();
        currentProperty.PropertyName = property.Name;
        Binding b = new Binding(property.Name);
        b.Source = selectedObject;
	//OneWay Binding if readonly, twoway else
        b.Mode = property.IsReadOnly ? BindingMode.OneWay : BindingMode.TwoWay;

        currentProperty.SetBinding(PropertyItem.PropertyValueProperty, b);
	currentProperty.OnActive += new EventHandler<DescriptionEventArgs>(currentProperty_OnActive);

        foreach (Attribute attribute in property.Attributes)	//check attributes
        {
         if (attribute.GetType() == typeof(DescriptionAttribute)){ //description to show in description textbox
            currentProperty.PropertyDescription = ((DescriptionAttribute)attribute).Description;
         }
         if (attribute.GetType() == typeof(CategoryAttribute)) {  //categories known from winforms pg.not implemented
             currentProperty.PropertyCategory = ((CategoryAttribute)attribute).Category;
         }
        }      

	PropertyPanel.Children.Add(currentProperty); //add PropertyItem to panel
}
</pre>
<p>
That&#8217;s it! Well, what happened here?<br />
We iterate over all properties the object, we set as SelectedObject, contains. If it&#8217;s marked as non-Browsable (<a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.browsableattribute.aspx">System.ComponentModel.BrowsableAttribute</a>), we&#8217;ll just skip it, otherwise we create a PropertyItem, set its name and create a Binding to connect the PropertyItem&#8217;s PropertyValue-property with the value of the actual property from SelectedObject.<br />
<br />
And before we add the PropertyItem to our Panel, we check the attributes of the source property (e.g. to get the description from the DescriptionAttribute or the get the corresponding category from the CategoryAttribute, which is not processed for simplicity in this demo).</p>
<p>When we now try to set some object to our PropertyGrid&#8217;s SelectedObject-property (in this case a dummy class containing several properties, including string, int, double, color, SolidColorBrush and a property marked with Browsable(false)) it should look like this:</p>
<p><center<<img src="http://blog.joachim.at/images/pg3.png"></center></p>
<p>In the screeshot above you can see different data types in their string representation. You don&#8217;t have to care about converting them back manually to their actual type as WPF&#8217;s Binding-Helpers do everything for you (and will throw Exceptions if the string-format for your type is wrong).</p>
<p>At last we add some Style to our PropertyGrid and received something like this:<br />
<center><img src="http://blog.joachim.at/images/pg4.png"></center><br />
<br />
To use the (very) simple PropertyGrid, just add a reference to PropertyGridDemo.dll, add the namespace in XAML to your window like this :</p>
<pre name="code" class="xml">
<Window x:Class="MyWindow"
xmlns:ctl="clr-namespace:PropertyGridDemo;assembly=PropertyGridDemo"
>
</pre>
<p>&#8230;and add the PropertyGrid itself somewhere in your XAML code</p>
<pre name="code" class="xml">
<Grid>
  <ctl:PropertyGrid x:Name="propertyGrid"/>
</Grid>
</pre>
<p>at last you have to provide some object (that contains some properties) to the SelectedObject property:</p>
<pre name="code" class="c-sharp">
//...
this.propertyGrid.SelectedObject = myCustomObject;
//...
</pre>
<p>
You can download the whole solution here: <a href="http://blog.joachim.at/download/PropertyGridDemo.zip">PropertyGridDemo.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joachim.at/?feed=rss2&amp;p=36</wfw:commentRss>
		</item>
		<item>
		<title>WPF DataBinding and Value Formatting for fun and profit</title>
		<link>http://blog.joachim.at/?p=32</link>
		<comments>http://blog.joachim.at/?p=32#comments</comments>
		<pubDate>Fri, 25 Apr 2008 07:38:17 +0000</pubDate>
		<dc:creator>jkersch</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[WPF]]></category>

		<category><![CDATA[c#]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[DataBinding]]></category>

		<category><![CDATA[XAML]]></category>

		<guid isPermaLink="false">http://blog.joachim.at/?p=32</guid>
		<description><![CDATA[WPF offers great functionality when it comes to DataBinding. You can e.g. set a List of Customer-Objects as DataContext on a ListView and don&#8217;t have to care about the rest.The following example shows a List of Customer&#8217;s bound to a ListView:

But what if you want to display some Properties of your objects in another format [...]]]></description>
			<content:encoded><![CDATA[<p>WPF offers great functionality when it comes to DataBinding. You can e.g. set a List of Customer-Objects as DataContext on a ListView and don&#8217;t have to care about the rest.The following example shows a List of Customer&#8217;s bound to a ListView:</p>
<p><img src="http://blog.joachim.at/images/converter1.png" height="196" width="342" /><br />
But what if you want to display some Properties of your objects in another format (i.e. something other that ToString() returns) ? You can either override ToString() or try to use another (imho more elegant) way.<br />
Therefore WPF offers an Interface called IValueConverter </p>
<pre name="code" class="c-sharp">
public interface IValueConverter {
   public object Convert(object value, Type targetType, object parameter, CultureInfo culture);
   public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture);
}
</pre>
<p>When implementing this interface in your own class, you can probably do everything you can imagine with the values you try to format. You can e.g. display the birthdate instead of its (normal) DateTime representation as Base64-string (this has no real use, it&#8217;s just an example of how far you can go). Therefore we create the following converter: </p>
<pre name="code" class="c-sharp">
public class Base64Converter : IValueConverter
{
  #region IValueConverter Members

  public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  {
      return System.Convert.ToBase64String(Encoding.ASCII.GetBytes(value.ToString()));
  }

  public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  {
      return Encoding.ASCII.GetString(System.Convert.FromBase64String(value.ToString()));
  }

  #endregion
}
</pre>
<p>Next we have to add our Namespace to the Window:</p>
<pre name="code" class="xml">
&lt;Window x:Class="CustomValueConverter:Window1"
. . .
xmlns:converters="clr-namespace:CustomValueConverter.Converter"&gt;
</pre>
<p>In the next step we create our Converter in our Window&#8217;s Resources:</p>
<pre name="code" class="xml">
. . .
&lt;Window.Resources&gt;
    &lt;converter:Base64Converter x:Key="base64"/&gt;
&lt;/Window.Resources&gt;
. . .
</pre>
<p>And from now on we can use our Converter everywhere we use DataBinding. For example:</p>
<pre name="code" class="xml">
. . .
&lt;TextBlock Text="{Binding Path=Birthday,Converter={StaticResource base64}}"/&gt;
. . .
</pre>
<p>would give the following result:</p>
<p><img src="http://blog.joachim.at/images/converter2.png"/></p>
<p>You can also pass parameters directly from XAML to a class implementing IValueConverter. This could be useful if you want to e.g. display some DateTime values in your own format.<br />
Therefore we change our Convert()-method in the following way:</p>
<pre name="code" class="c-sharp">

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
     return ((DateTime)value).ToString((string)parameter);
}
</pre>
<p>Now the DateTime value will be formatted corresponding to our format string we supply as a parameter from XAML. We can declare our parameters like this :</p>
<pre name="code" class="xml">
&lt;TextBlock Text="{Binding Path=Birthday,
                  Converter={StaticResource parameterized},
                  ConverterParameter='dd@MM@yyyy'}"/&gt;
</pre>
<p>what gives us the following result</p>
<p><img src="http://blog.joachim.at/images/converter3.png"></p>
<p>With ValueConverters you can transform your objects to any representation you want. You&#8217;re only limited by your imagination.<br />
The ConvertBack() method of IValueConverter is needed to convert the values from Convert() back to its original representation.<br /> This is necessary especially if you bind some values to TextBoxes (or other value-changing controls) and don&#8217;t want your user to use the original representation of your object&#8217;s values.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joachim.at/?feed=rss2&amp;p=32</wfw:commentRss>
		</item>
		<item>
		<title>VMWare Fusion WPF issues</title>
		<link>http://blog.joachim.at/?p=19</link>
		<comments>http://blog.joachim.at/?p=19#comments</comments>
		<pubDate>Mon, 10 Mar 2008 19:53:50 +0000</pubDate>
		<dc:creator>jkersch</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[WPF]]></category>

		<category><![CDATA[macbook pro]]></category>

		<category><![CDATA[wmvware]]></category>

		<guid isPermaLink="false">http://blog.joachim.at/?p=19</guid>
		<description><![CDATA[I wrote about a WPF problem i had in an earlier post.When i installed a new Virtual Machine with XP SP2 and VS2008, i encountered the same problem. So i realized that this just couldn&#8217;t be a Microsoft related issue. I realized that this behavior started when i enabled DirectX support in VMWare Fusion (Yes, [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote about a WPF problem i had in an <a href="http://blog.joachim.at/?p=17">earlier post</a>.When i installed a new Virtual Machine with XP SP2 and VS2008, i encountered the same problem. So i realized that this just couldn&#8217;t be a Microsoft related issue. I realized that this behavior started when i enabled DirectX support in VMWare Fusion (Yes, i admit. I&#8217;m a .NET developer working on a Macbook Pro with OS X 10.5)</p>
<p>I know that VMWare Fusion didn&#8217;t support Aero in their first version, but as Vista works perfectly in my VM (with DirectX support enabled) i didn&#8217;t thought of this being an issue.</p>
<p>When i turned off DirectX support for my Virtual Machines, WPF worked as expected&#8230;.Ticket closed.</p>
<p><strong>Update:</strong> This post was originally targeted at VMWare Fusion 1.1. I recently tested their 2.0 release and it seems that VMWare has fixed some the problems when displaying WPF Applications. However, (at least on XP SP2)  when using normal wpf applications (no excessive 3D stuff) it feels somewhat slower and has more delays compared to software-only rendering in Vmware fusion 1.1. And some of my applications just show empty windows when 3D acceleration is turned off. Conclusion: VMWare Fusion is still a mess for WPF developers.</p>
<p>The only solution that works for me so far is disabling hardware rendering for all WPF apps (as it is slow when 3d support is enabled and NOT USABLE when 3d support is disabled withing vmware fusion.). <br />
To disable hardware rendering create (or modify) the following registry Dword: </p>
<p><code>HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration</code> </p>
<p>and set it to 1 to disable.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joachim.at/?feed=rss2&amp;p=19</wfw:commentRss>
		</item>
		<item>
		<title>Strange WPF runtime behavior</title>
		<link>http://blog.joachim.at/?p=17</link>
		<comments>http://blog.joachim.at/?p=17#comments</comments>
		<pubDate>Mon, 03 Mar 2008 09:10:40 +0000</pubDate>
		<dc:creator>jkersch</dc:creator>
		
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://blog.joachim.at/?p=17</guid>
		<description><![CDATA[Recently i noticed a really strange behavior  in one of my development VM&#8217;s. WPF is completely corrupted. There are no error messages or complaints at all. I cannot really describe what&#8217;s going on, but the screenshots may be self-explaining. Even the VS2008 WPF designer doesn&#8217;t work correctly anymore.  Reinstalling .NET (2.0, 3.0, 3.5) [...]]]></description>
			<content:encoded><![CDATA[<p>Recently i noticed a really strange behavior  in one of my development VM&#8217;s. WPF is completely corrupted. There are no error messages or complaints at all. I cannot really describe what&#8217;s going on, but the screenshots may be self-explaining. Even the VS2008 WPF designer doesn&#8217;t work correctly anymore.  Reinstalling .NET (2.0, 3.0, 3.5) doesn&#8217;t solve this issue. Even third-party WPF apps (e.g. kaxaml) look really&#8230;. strange.<br /><center><img src="/images/wpfpropertygrid.png" alt="Visual Studio 2008 WPF Property Grid" /><br />Visual Studio 2008 WPF Property Grid </p>
<p><img src="/images/wpfzoomer.png" alt="Visual Studio 2008 WPF Designer Zoom Control" /><br />Visual Studio 2008 WPF Designer Zoom Control</p>
<p><img src="/images/wpfkaxaml.png" alt="Kaxaml User Interface" /><br />Kaxaml User Interface</p>
<p></center> I hope to find a solution because i don&#8217;t wanna install the machine over again.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joachim.at/?feed=rss2&amp;p=17</wfw:commentRss>
		</item>
		<item>
		<title>WPF Object Intersection and Animation</title>
		<link>http://blog.joachim.at/?p=11</link>
		<comments>http://blog.joachim.at/?p=11#comments</comments>
		<pubDate>Sat, 02 Feb 2008 17:58:49 +0000</pubDate>
		<dc:creator>jkersch</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[WPF]]></category>

		<category><![CDATA[c#]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[XAML]]></category>

		<guid isPermaLink="false">http://joachim.apospec.com/it/?p=11</guid>
		<description><![CDATA[Um ein bisschen mit WPF und XAML zu spielen hab ich mich ein bisschen mit Intersection und Combination von WPF Elementen beschäftigt. Da System.Windows.Media.CombinedGeometry leider immer nur 2 Objekte auf einmal miteinander verknüpfen kann(egal ob via Exclude, Xor, Union oder Intersect). Um eine CSG-ähnliche Konstruktion von Custom Path-Objekten zu erzeuge muss man die CombinedGeometry-Operationen also [...]]]></description>
			<content:encoded><![CDATA[<p>Um ein bisschen mit WPF und XAML zu spielen hab ich mich ein bisschen mit Intersection und Combination von WPF Elementen beschäftigt. Da System.Windows.Media.CombinedGeometry leider immer nur 2 Objekte auf einmal miteinander verknüpfen kann(egal ob via Exclude, Xor, Union oder Intersect). Um eine CSG-ähnliche Konstruktion von Custom Path-Objekten zu erzeuge muss man die CombinedGeometry-Operationen also schachteln.<img src="/wp-content/images/intersect.png" /><a href="/wp-content/uploads/2008/02/intersect.xaml" title="Intersect.xaml">Intersect.xaml</a>In diesem Beispiel habe ich einfach ein paar Ringsegmente erzeugt die sich (um der Sache ein bisschen Pepp zu verleihen) sich alle um denselben Ursprung drehen und so ein bisschen Leben in das ganze bringen.Sieht dann ungefähr so aus:[kml_flashembed movie=&#8221;http://www.joachim.at/video/rotatearound.swf&#8221; height=&#8221;360&#8243; width=&#8221;400&#8243; /]Hier der XAML Code für das Beispiel:<a href="/wp-content/uploads/2008/02/rotwindow.xaml" title="RotWindow.xaml">RotWindow.xaml</a>Dann nur noch die Storyboards für die RotateTransform´s im Code Behind File via:
<div class="dean_ch" style="white-space: wrap;"> <span class="br0">&#40;</span><span class="br0">&#40;</span>Storyboard<span class="br0">&#41;</span>FindResource<span class="br0">&#40;</span><span class="st0">&quot;T1Storyboard&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="me1">Begin</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>; <span class="br0">&#40;</span><span class="br0">&#40;</span>Storyboard<span class="br0">&#41;</span>FindResource<span class="br0">&#40;</span><span class="st0">&quot;T2Storyboard&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="me1">Begin</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>; <span class="br0">&#40;</span><span class="br0">&#40;</span>Storyboard<span class="br0">&#41;</span>FindResource<span class="br0">&#40;</span><span class="st0">&quot;T3Storyboard&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>.<span class="me1">Begin</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>;</div>
<p>starten und gut.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.joachim.at/?feed=rss2&amp;p=11</wfw:commentRss>
		</item>
	</channel>
</rss>
