2010-10-30 21 views
2

Comme Here sur le lien est une belle application d'accueil, mais j'ai besoin de quelque chose comme Mac OSX Dock, il docks à un côté sans prendre l'écran, et quand nous en avons besoin, il est là.Docking comme Mac OSX Dock dans WPF

S'il vous plaît dites-moi une solution d'accueil qui ne prend pas l'espace de l'écran.

Répondre

0

Voici une photo dans l'obscurité, basée sur ce que j'imagine que vous essayez d'atteindre. Je vais supposer que vous exécutez une application locale de confiance basée sur Windows. La confiance n'aura probablement pas d'importance, il suffit de définir le contexte.

Il y a trois pièces à la solution que je me fais:

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> 

L'important sur le quai est qu'il est 5 pixels de haut, qui est imperceptibles au fond, et a une mouseover qui l'élève à pleine hauteur. (Vous pouvez aussi essayer de définir une hauteur explicite, j'imagine que régler la hauteur à NaN la fera mesurer par rapport à ses enfants mais je peux me tromper).

Enfin, la structure des éléments qui composent le quai:

DockItem.cs 
class DockItem{ 
ICommand Command{get;set;} 
String Label{get;set;} 
ImageSource Icon{get;set;} 
} 

(Après l'échange de commentaires) Si vous cherchez à avoir assis de manière transparente sur le bureau, vous aurez besoin de le mettre de cette façon:

<Window WindowStyle='None' Background='Transparent' State='Maximized'> 
+0

Merci pour la solution, et regrette que je ne ai pas expliquer ce que je voulais, voici ce «j'ai juste besoin d'accoster à un côté du bureau et doit se comporter comme le Mac OSX Dock ou Dell Dock ". Désolé pour le problème et encore une fois, merci pour l'aide! – Alam

+0

Pas de problème, répondez maintenant à la mise à jour pour refléter les exigences. –

+0

Super Je vais l'essayer, Merci. – Alam