7

私がやろうとしているのは、WPFでデスクトップアプリケーションを作成することです。そのUIは、小さなアイコンが画面の左端の中央に固定されたままになり、クリック(またはホバー)するとサイドバー(Googleのように)をスライドして開きます。デスクトップバー)画面の左端に沿って実行されます(固定位置、移動できません)。

私が求めているのはappbarのようなものかもしれませんが、appbarの場合のように、左端に沿ったデスクトップアイコンを移動したくない、つまりデスクトップスペースを占有したくないことに注意してください... 。誰かが私に方法を提案してもらえますか?

これを使用して部分的なソリューションを実装しました、スライドアニメーションと固定位置を取得できません

4

2 に答える 2

11

このようなものが機能する可能性があります:

もちろん、サイドバーのアニメーションでスライドを作成することもできます。これは、(部分的な)透明性とスイッチング原理を示しています。

XAML:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        WindowStyle="None" Topmost="True" WindowState="Maximized" 
        AllowsTransparency="True" Background="Transparent">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Rectangle Name="rect" Width="100" VerticalAlignment="Stretch" Fill="#99000000" Visibility="Collapsed" />
        <Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" Width="32" Height="32" FontSize="16" VerticalAlignment="Center" HorizontalAlignment="Right" Background="White" Click="Button_Click">&gt;</Button>
    </Grid>
</Window>

C#:

private void Button_Click(object sender, RoutedEventArgs e)
{
    if (rect.Visibility == System.Windows.Visibility.Collapsed)
    {
        rect.Visibility = System.Windows.Visibility.Visible;
        (sender as Button).Content = "<";
    }
    else 
    {
        rect.Visibility = System.Windows.Visibility.Collapsed;
        (sender as Button).Content = ">";
    }        
}
于 2012-08-06T10:46:04.497 に答える
-1

この回答とこのサイトのその他の回答に基づいてサイドバーを作成しました。結果が気に入ったので、レポを作成しました。

https://github.com/beto-rodriguez/MaterialMenu

nugetからもインストールできます。

ここに例があります

<materialMenu:SideMenu HorizontalAlignment="Left" x:Name="Menu"
                           MenuWidth="300"
                           Theme="Default"
                           State="Hidden">
        <materialMenu:SideMenu.Menu>
            <ScrollViewer VerticalScrollBarVisibility="Hidden">
                <StackPanel Orientation="Vertical">
                    <Border Background="#337AB5">
                        <Grid Margin="10">
                            <TextBox Height="150" BorderThickness="0" Background="Transparent"
                                VerticalContentAlignment="Bottom" FontFamily="Calibri" FontSize="18"
                                Foreground="WhiteSmoke" FontWeight="Bold">Welcome</TextBox>
                        </Grid>
                    </Border>
                    <materialMenu:MenuButton Text="Administration"></materialMenu:MenuButton>
                    <materialMenu:MenuButton Text="Packing"></materialMenu:MenuButton>
                    <materialMenu:MenuButton Text="Logistics"></materialMenu:MenuButton>
                </StackPanel>
          </ScrollViewer>
     </materialMenu:SideMenu.Menu>
</materialMenu:SideMenu>
于 2015-09-10T21:41:09.633 に答える