IronPython, WPF, and button-free windows
So, how do we achieve something like this with WPF, using IronPython?
Assume Vista or later (if you want to support XP, do something different if System.Environment.OSVersion.Version.Major < 6)
Start with some XAML
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window2" Height="300" Width="400" MinWidth="400" MinHeight="100" WindowStyle="None" AllowsTransparency="True"> <Grid> <Grid Name="banner"> <Image Name="icon" Stretch="Fill" HorizontalAlignment="Left" VerticalAlignment="Top" Width="20" Height="20" Margin="4,4,0,0" /> <Label Height="28" Name="title" VerticalAlignment="Top" Background="WhiteSmoke" Margin="28,0,0,0">Label</Label> </Grid> <StackPanel Margin="0,28,0,0" Name="body" VerticalAlignment="Top" Height="230"> <TextBlock Height="100" Name="message" VerticalAlignment="Top" /> <Image Name="image" Stretch="None" Height="130" Width="400" /> </StackPanel> <StackPanel Name="buttons" Height="55" VerticalAlignment="Bottom" Orientation="Horizontal"> <!-- Button Height="23" Name="button1" Width="75" Margin="2">Button</Button --> </StackPanel> </Grid> </Window>
We can then use ctypes
to get at the glass APIs, and set up some re-usable types
which we can then hook into our window (assume we have loaded the XAML into a variable window
)
Of course you now need to ensure you have some button or other control that will let you dismiss the window, now you no longer have the kiss of death available at top right.
The ref
parameter in the WndProc hook is the reason behind the previous post...
No comments :
Post a Comment