0
我是WPF,C#和XAML(來自obj-c)的新手我只想弄清楚如何將它放到擴展控件的按鈕隱藏處,並出現在鼠標上方?謝謝WPF中的擴展按鈕
我是WPF,C#和XAML(來自obj-c)的新手我只想弄清楚如何將它放到擴展控件的按鈕隱藏處,並出現在鼠標上方?謝謝WPF中的擴展按鈕
爲此,您將不得不借助ControlTemplate自定義擴展控制。您可以在控件模板中爲切換按鈕創建一個圖像,其默認來源不會是任何東西。鼠標懸停後,可以給出圖像的路徑並且圖像可見。
<ControlTemplate x:Key="ExpanderToggleButtonTemplate" TargetType="{x:Type ToggleButton}">
<Border x:Name="ExpanderToggleButtonBorder" Height="30">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Name="img" HorizontalAlignment="Left"></Image>
<ContentPresenter x:Name="HeaderContent" Grid.Column="0" Margin="50,0,0,0"
ContentSource="Content" >
</ContentPresenter>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver"
Value="true">
<Setter Property="Source"
Value="path of whichever image is required"
TargetName="img"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="ExpanderTemplate" TargetType="{x:Type Expander}">
<DockPanel>
<ToggleButton DockPanel.Dock="Top"
Template="{StaticResource ExpanderToggleButtonTemplate}" Content="{TemplateBinding Header}"
IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" OverridesDefaultStyle="True">
</ToggleButton>
<ContentPresenter x:Name="ExpanderContent" Grid.Row="1" Visibility="Collapsed" DockPanel.Dock="Bottom"/>
</DockPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsExpanded" Value="True">
<Setter TargetName="ExpanderContent" Property="Visibility" Value="Visible"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
這是唯一的方法嗎?我可以設置,然後將其設置爲在鼠標懸停事件處理程序中顯示?我做到了,但this.isVisible或this.Show不工作。就像我說的,我是C#的新手 –
2014-08-30 17:38:07
@ user3593696你需要什麼?整個擴展器控件應該隱藏,除了鼠標懸停或擴展器切換按鈕和/或標題被隱藏,除了鼠標懸停之外?因爲擴展頭包含切換按鈕以及標題文本。 – Bhaumik 2014-08-30 20:48:15
我正在嘗試複製Google新聞文章容器。它包含一個鏈接和簡短描述,當您將鼠標放在它上面時,容器的右上角會出現一個按鈕,然後當您點擊該按鈕時,容器會展開並顯示說明。我試圖在XAML/C#中複製它 – 2014-08-30 23:48:40