meerdere buttons diabelen met een container ofzo

Status
Niet open voor verdere reacties.

rambomambo

Gebruiker
Lid geworden
9 dec 2012
Berichten
163
ik zou graag een fotogallerij maken maar ik weet niet hoe ik meerdere buttons moet invissible maken
dus de foto vult het volledige scherm als ik in het gebied vanonder kom.

moeten mijn buttons tevoorschijn komen. Er staan 3 buttons
maar als ik beneden kom wil ik graag dat alle 3 de buttons onmiddelijk tevoorschijn komen kan dit door middel van een item ofzo
het moet ook zo zijn als mijn knoppen er tevoorschijn staan dat de afbeelding mooi rond de knoppen loopt.

Alvast bedankt
 
Je kunt gewoon de visibility property gebruiken die de buttons hebben. (collapsed/visable)

Als je een property bind aan alle buttons zijn ze tegelijk visible of niet.
 
ja dit heb ik ook al gevonden maar hoe kan ik bv als ik in het gebied onderaan de pagina kom waar mijn buttons staan ze tevoorschijn laten komen met een hover functie zoals in html bv. maar het probleem is ik vind geen hover in C#
 
Je hebt bijvoorbeeld mouse enter/leave events als je de buttons in een stackpanel stopt kun je deze events van het stack panel gebruiken. Het stackpanel kun je op transparant background zetten.
 
ja maar het werkt niet ik heb dit geprobeert stackpanel.Ismouseover = visibility.visible dan geeft hij een error message.
Is het mogelijk bv ik heb een button met een ronde image png maar er staat nog een vierkant rond kan ik dit niet rond de afbeelding tekenen ?
 
Je moet je registreren op deze twee events zoals een button click.
Bij de mouse over zet je de buttons visible en mouse leave zet je ze op collapsed.

(met binding ;))
 
de knop doen verdwijnen lukt maar hem terug halen niet want ik vind geen event mouseover alleen mouseleave
 
ja ook met die enter lukt het niet dus als ik weg ga van mijn button gaat mijn button inderdaad weg maar als ik dan op de plaats terug kom waar mijn button stond gebeurt er niks


Code:
     private void button1_MouseLeave(object sender, MouseEventArgs e)
        {
            button1.Visibility = Visibility.Collapsed;
        }

        private void button1_MouseEnter(object sender, MouseEventArgs e)
        {
            button1.Visibility = Visibility.Visible;
        }

        private void button1_Click_1(object sender, RoutedEventArgs e)
        {
            string test = "test";
            lbl1.Content = test;
        }
 
Daarom zei ik ook dat je de buttons in een stackpanel kon zetten, en de events van het stackpanel gebruiken. Niet van de buttons, als je een button collapsed is deze ook weg en niet alleen maak verborgen.
 
werkt ook niet met het stackpanel heb hiden en colapsed geprobeerd buttons verdwijnen maar komen niet meer terug als je in het gebied komt of moet er nog een binding komen ?

Code:
      private void button1_MouseLeave(object sender, MouseEventArgs e)
        {
         //   button1.Visibility = Visibility.Collapsed;
            knoppen.Visibility = Visibility.Hidden;
        }

        private void button1_MouseEnter(object sender, MouseEventArgs e)
        {
           // button1.Visibility = Visibility.Visible;
            knoppen.Visibility = Visibility.Visible;
        }

        private void button1_Click_1(object sender, RoutedEventArgs e)
        {
            string test = "test";
            lbl1.Content = test;
        }

Code:
 <Window.Resources>
        <Style TargetType="Button" x:Key="TabButton">
            <Setter Property="Background" Value="White" />
            <Setter Property="TextBlock.TextAlignment" Value="Center" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Border CornerRadius="30" Background="Yellow" BorderBrush="#ccc" BorderThickness="1" >
                            <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

       

       
    </Window.Resources>
    <StackPanel Height="320">
        <StackPanel Height="62">
            <Label Content="test"></Label>
            <Label Content="Label" Height="28" Name="lbl1" />
        </StackPanel>
        <StackPanel Height="132" Name="knoppen"  >
            <Button Content="Button" Height="84" Name="button1" Width="129" IsMouseDirectlyOverChanged="button1_IsMouseDirectlyOverChanged" MouseLeave="button1_MouseLeave" MouseEnter="button1_MouseEnter" Click="button1_Click_1">
                <Button.Template>
                    <ControlTemplate>                      
                        <Image Source="images/big_green_button.png" />                   
                    </ControlTemplate>               </Button.Template>          
            </Button>          
            <Button Content="Button" Height="23" Name="button2" Width="75" Style="{StaticResource TabButton}" />
           
        </StackPanel>
    </StackPanel>
</Window>
 
ok met deze xaml code is het me nu eindelijk gelukt maar 1 probleem

Code:
<Window x:Class="buttonchange.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <Style TargetType="Button" x:Key="TabButton">
            <Setter Property="Background" Value="White" />
            <Setter Property="TextBlock.TextAlignment" Value="Center" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Border CornerRadius="30" Background="Yellow" BorderBrush="#ccc" BorderThickness="1" >
                            <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style x:Key="Expandable" TargetType="StackPanel">
            <Setter Property="Visibility" Value="Visible" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=StackPanel}, Path=IsMouseOver}" Value="True" >
                    <Setter Property="Visibility" Value="Collapsed" />
                </DataTrigger>
            </Style.Triggers>
        </Style>




    </Window.Resources>
    <StackPanel Height="320">
        <StackPanel Height="62">
            <Label Content="test"></Label>
            <Label Content="Label" Height="28" Name="lbl1" />
        </StackPanel>
        <StackPanel Height="142" x:Name="knoppen" Style="{StaticResource Expandable}"  Width="500">
            <Label Content="Label" Height="28" Name="label1" />
            <Button Content="Button" Height="23" Name="button2" Width="75" Style="{StaticResource TabButton}" />
           
        </StackPanel>
    </StackPanel>
</Window>

als ik in het gebied kom waar mijn label of button staat begint mijn knop en label constant te flikkeren.

Hmmm en nu na at aanpassingen werkt het weer helemaal niet en heb niks in mijn styles veranderd

Code:
<Window x:Class="button.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <Style TargetType="Button" x:Key="TabButton">
            <Setter Property="Background" Value="White" />
            <Setter Property="TextBlock.TextAlignment" Value="Center" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Border CornerRadius="30" Background="Yellow" BorderBrush="#ccc" BorderThickness="1" >
                            <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        
        <Style x:Key="Expandable" TargetType="StackPanel">
            <Setter Property="Visibility" Value="Visible" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=StackPanel}, Path=IsMouseOver}" Value="True" >
                    <Setter Property="Visibility" Value="Hidden"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>




    </Window.Resources>
    <Grid Background="Azure">
        <StackPanel Margin="0,201,0,12" Orientation="Horizontal"  x:Name="Knoppen" Style="{StaticResource Expandable}">
            <Button Content="Button" Height="23" Name="button1" Width="75" Style="{StaticResource TabButton}"  />
        </StackPanel>
    </Grid>
</Window>
 
Laatst bewerkt:
De background van je stackpanel kun je op transparant zetten en een minheight is het gebied wat reageert op de muis als de buttons weg zijn.


De grid van je mainpage:

[CPP]<Grid>
<StackPanel Background="Transparent" MinHeight="50" VerticalAlignment="Bottom" MouseEnter="StackPanel_MouseEnter" MouseLeave="StackPanel_MouseLeave">
<Button Name="Button1" Content="Button 1" Margin="12"></Button>
<Button Name="Button2" Content="Button 2" Margin="12"></Button>
</StackPanel>
</Grid>[/CPP]


De code behind file:
[CPP]private void StackPanel_MouseEnter(object sender, MouseEventArgs e)
{
Button1.Visibility = Visibility.Visible;
Button2.Visibility = Visibility.Visible;
}

private void StackPanel_MouseLeave(object sender, MouseEventArgs e)
{
Button1.Visibility = Visibility.Collapsed;
Button2.Visibility = Visibility.Collapsed;
}[/CPP]
 
en is er geen manier om bv als ik boven de knoppen sta blijven de knoppen staan en als ik van de knoppen wegga schuiven ze naar onder met bv een translatetransform
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan