NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
IT rekvalifikace s podporou uplatnění. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Avatar
HONZ4
Člen
Avatar
HONZ4:17.10.2016 19:25

Ahoj, poprvé zkouším si WPF. Mám button s gradient:

<Button x:Name="button" Content="Play" Margin="0,0,10,10" Click="button_Click" HorizontalAlignment="Right" Width="101" Height="34" VerticalAlignment="Bottom" BorderBrush="#FF707070" Foreground="#FFE2E2E2" FontWeight="Bold">
    <Button.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FF212121" Offset="1"/>
            <GradientStop Color="#FF2E2E2E"/>
        </LinearGradientBrush>
    </Button.Background>
</Button>

ale nemůžu přijít na to, jak nastavit barvu gradientu při najetí myší nad tlačítko, při stisku a při změně "enabled"

Editováno 17.10.2016 19:27
 
Odpovědět
17.10.2016 19:25
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na HONZ4
ostrozan:17.10.2016 20:30

Tak to už je trochu "vyšší dívčí"
buď si to nastav v obsluze události "MouseOver",

nebo použij Trigger

 
Nahoru Odpovědět
17.10.2016 20:30
Avatar
HONZ4
Člen
Avatar
Odpovídá na ostrozan
HONZ4:17.10.2016 22:55

Dá se to přes ten trigger nastavit nějak globálně?

 
Nahoru Odpovědět
17.10.2016 22:55
Avatar
Odpovídá na HONZ4
Neaktivní uživatel:17.10.2016 23:44

Pomocí Resources:

<Window.Resources>
<Style TargetType="TextBlock">
                    <Setter Property="Foreground" Value="Blue"></Setter>
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Foreground" Value="Red" />
                            <Setter Property="TextDecorations" Value="Underline" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
</Window.Resources>

-> použití TargetType="Tex­tBlock" automaticky nastaví tento styl všem TextBlockům, které jsou v elementu Window. Analogicky tedy s Button

Nahoru Odpovědět
17.10.2016 23:44
Neaktivní uživatelský účet
Avatar
HONZ4
Člen
Avatar
Odpovídá na Neaktivní uživatel
HONZ4:18.10.2016 19:09

Mohl by poprosit o komplet ukázku?
Mě se to nedaří:

<Window x:Class="WpfApplication5.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApplication5"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">

    <Window.Resources>
        <Style TargetType="Button">
            <Setter Property="Foreground" Value="Blue"></Setter>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Foreground" Value="Red" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>

    <Grid Background="#FF202020">
        <Button x:Name="button" Content="Play" Margin="0,0,116,10" Click="button_Click" HorizontalAlignment="Right" Width="101" Height="34" VerticalAlignment="Bottom" BorderBrush="#FF707070" Foreground="#FFE2E2E2" FontWeight="Bold">
            <Button.Background>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF212121" Offset="1"/>
                    <GradientStop Color="#FF2E2E2E"/>
                </LinearGradientBrush>
            </Button.Background>
        </Button>
        <Label x:Name="label1" Content="Label" Margin="49,41,0,0" Height="25" VerticalAlignment="Top" HorizontalAlignment="Left" Width="151" Foreground="#FFA6BD11" FontWeight="Bold"/>
        <Button x:Name="button_Copy" Content="Stop" Margin="0,0,10,10" Click="button_Click" HorizontalAlignment="Right" Width="101" Height="34" VerticalAlignment="Bottom" BorderBrush="#FF707070" Foreground="#FFE2E2E2" FontWeight="Bold" IsCancel="True">
            <Button.Background>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF212121" Offset="1"/>
                    <GradientStop Color="#FF2E2E2E"/>
                </LinearGradientBrush>
            </Button.Background>
        </Button>
    </Grid>
</Window>

Já nejlépe pochopím na konkrétním příkladu jak to funguje. Na netu jsem našel spoustu dlouhých kódů, ale ne to na čem bych to pochopil. A nemůžu nikde najít žádný rozumný tutoriál, nebo návod.

Editováno 18.10.2016 19:10
 
Nahoru Odpovědět
18.10.2016 19:09
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.