Вот выстрел в темноте, основанный на том, что, как я полагаю, вы пытаетесь достичь.Я предполагаю, что вы используете локальное приложение с полным доверием на основе Windows.Доверие, вероятно, не имеет значения, просто настройка контекста.
У меня есть три решения, которые я представляю:
Window1.xaml (your main app window)
<Window blah blah>
<Grid>
<!--Your application content-->
<local:PseudoDock VerticalAlignment='Bottom' />
</Grid>
</Window>
PseudoDock.xaml
<UserControl Height='5'>
<UserControl.Triggers>
<Trigger Property='FrameworkElement.IsMouseOver'>
<Setter Property='Height' Value='NaN' />
</Trigger>
</UserControl.Triggers>
<ItemsControl>
<ItemsControl.ItemsPanelTemplate>
<StackPanel Orientation='Horizontal' />
</ItemsControl.ItemsPanelTemplate>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Command='{Binding Path=Command}'>
<StackPanel>
<Image Source='{Binding Path=Icon}' />
<TextBlock Source='{Binding Path=Label}' />
</StackPanel>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</UserControl>
Важная особенность док-станции в том, что она имеет высоту 5 пикселей., который незаметен в нижней части, и имеет указатель мыши, который поднимает его на полную высоту.(Вы также можете попробовать установить явную высоту, я полагаю, что при установке высоты на NaN она будет измеряться по отношению к ее дочерним элементам, но я могу ошибаться).
Наконец, структура элементов, составляющих док:
DockItem.cs
class DockItem{
ICommand Command{get;set;}
String Label{get;set;}
ImageSource Icon{get;set;}
}
(после обмена комментариями) Если вы хотите, чтобы он прозрачно располагался над рабочим столом, вам необходимо установить его следующим образом:
<Window WindowStyle='None' Background='Transparent' State='Maximized'>