Dar estilo a AvalonDock 2 es una divertida tareda!


Si en algún momento te dedicas a tan maravilloso trabajo, te convendrá saber que el jodido título de cada AnchorablePane es un control loco y se llama así! Su fondillo verde se cambia in this way. Has visto qué peligro tiene? Más que un carro de indios. Pues ahí lo llevas. Ahora a ver cómo cojones se personaliza via estilo sin tener que traquetear todo.

DISCO INFERNO!!

UPDATE

Para flipar en colorines, aquí va mi último descubrimiento. Si pones este estilo tan bueno en tu código y le pones ese TargetType que apunta y dispara, puedes hacer que tu barrita de título sea una barrita de muesli

Aquí tenemos el fragmento clave, estilo por defecto de del AnchorablePaneTitle:

<Style TargetType="{x:Type avalondock:AnchorablePaneTitle}">

       <Setter Property="Template">

           <Setter.Value>

               <ControlTemplate>

                   <Border Background="{StaticResource DocPathDefaultGradient}"

                           BorderBrush="{TemplateBinding BorderBrush}"

                           BorderThickness="{TemplateBinding BorderThickness}">

                       <Grid>

                           <Grid.ColumnDefinitions>

                               <ColumnDefinition Width="*" />

                               <ColumnDefinition Width="Auto" />

                               <ColumnDefinition Width="Auto" />

                               <ColumnDefinition Width="Auto" />

                           </Grid.ColumnDefinitions>

                           <avalondock:DropDownControlArea DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu,  RelativeSource={RelativeSource TemplatedParent}}" DropDownContextMenuDataContext="{Binding Path=LayoutItem, RelativeSource={RelativeSource TemplatedParent}}">

                               <ContentPresenter

                                   Content="{Binding Model, RelativeSource={RelativeSource TemplatedParent}}"

                                   ContentTemplate="{Binding Model.Root.Manager.AnchorableTitleTemplate, RelativeSource={RelativeSource TemplatedParent}}" ContentTemplateSelector="{Binding Model.Root.Manager.AnchorableTitleTemplateSelector,  RelativeSource={RelativeSource TemplatedParent}}" />

                           </avalondock:DropDownControlArea>

                           <avalondock:DropDownButton

                               Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}"

                               Focusable="False" Grid.Column="1" DropDownContextMenu="{Binding Model.Root.Manager.AnchorableContextMenu, RelativeSource={RelativeSource TemplatedParent}}"

                               DropDownContextMenuDataContext="{Binding Path=LayoutItem, RelativeSource={RelativeSource TemplatedParent}}" ToolTip="{x:Static Properties:Resources.Anchorable_CxMenu_Hint}">

                               <Image Source="/AvalonDock;component/Images/PinMenu.png" />

                           </avalondock:DropDownButton>

                           <Button x:Name="PART_AutoHidePin" Grid.Column="2" Focusable="False" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" Visibility="{Binding Path=IsEnabled,  RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" Command="{Binding Path=LayoutItem.AutoHideCommand, RelativeSource={RelativeSource TemplatedParent}}" ToolTip="{x:Static Properties:Resources.Anchorable_BtnAutoHide_Hint}"> 

                               <Image Source="/AvalonDock;component/Images/PinAutoHide.png" />

                           </Button>

                           <Button x:Name="PART_HidePin" Grid.Column="3" Focusable="False"

                                   Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"

                                   Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" Command="{Binding  Path=LayoutItem.HideCommand, RelativeSource={RelativeSource TemplatedParent}}"

                                   ToolTip="{x:Static Properties:Resources.Anchorable_BtnClose_Hint}">

                               <Image Source="/AvalonDock;component/Images/PinClose.png" />

                           </Button>

                       </Grid>

                   </Border>

                   <ControlTemplate.Triggers>

                       <DataTrigger

                           Binding="{Binding Model.IsAutoHidden, RelativeSource={RelativeSource Mode=Self}}" Value="True">

                           <Setter Property="LayoutTransform" TargetName="PART_AutoHidePin">

                               <Setter.Value>

                                   <RotateTransform Angle="90" />

                               </Setter.Value>

                           </Setter>

                       </DataTrigger>

                   </ControlTemplate.Triggers>

               </ControlTemplate>

           </Setter.Value>

       </Setter>

   </Style>

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s