Diskuze: Úprava vzhledu TextBox ve WPF C#

C# .NET .NET (C# a Visual Basic) Úprava vzhledu TextBox ve WPF C# American English version English version

Avatar
Maros2470
Člen
Avatar
Maros2470:

Zdravím Jelikož s WPF teprve začínám, tak zkouším různé úpravy vzhledu. Narazil jsem však u TextBox na problém. Vzhled jsem sice nějak docílil, ale nelze to TextBox psát. Úpravu vzhledu dělám v App.xaml. Můžete mi poradit?

<Application x:Class="Test2.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <LinearGradientBrush x:Key="GrayBlueGradientBrush" StartPoint="0,0" EndPoint="1,1">
            <GradientStop Color="DarkGray" Offset="0" />
            <GradientStop Color="#CCCCFF" Offset="0.5" />
            <GradientStop Color="DarkGray" Offset="1" />
        </LinearGradientBrush>

        <Style TargetType="{x:Type TextBox}">
            <Setter Property="Background" Value="{StaticResource GrayBlueGradientBrush}" />
            <Setter Property="Width" Value="80" />
            <Setter Property="Margin" Value="10" />
            <Setter Property="Template">
                <Setter.Value>


                    <ControlTemplate TargetType="TextBox">
                        <Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" ClipToBounds="True">


                            <Rectangle x:Name="outerRectangle" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stroke="{TemplateBinding Background}" RadiusX="10" RadiusY="10" StrokeThickness="2" Fill="Yellow" />




                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Application.Resources>
</Application>
Editováno 18.2.2015 14:38
 
Odpovědět 18.2.2015 14:36
Avatar
Odpovídá na Maros2470
sadlomaslox25:

a co byl cil te upravy? me to totiz moc nedava smysl.

 
Nahoru Odpovědět 18.2.2015 14:52
Avatar
Maros2470
Člen
Avatar
Odpovídá na sadlomaslox25
Maros2470:

Zaoblil jsem hrany, upravil barvu ohraničení a nastavil rozměry. Mělo by to sloužit jako šablona pro veškeré TextBoxy v aplikaci.

 
Nahoru Odpovědět 18.2.2015 15:01
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Maros2470
Jan Vargovský:

Tak si editni už existující styl. V GUI to tam jde někde proklikat - něco ve stylu "edit existing style".

 
Nahoru Odpovědět 18.2.2015 17:47
Avatar
Odpovídá na Maros2470
Michal Štěpánek:

mrkni se sem
http://xaml.cz/…ich-pouziti/
je to sice staršího data, ale celkem pěkně popsané...

Nahoru Odpovědět 19.2.2015 9:07
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na sadlomaslox25
Petr Nymsa:

Přidej u style kromě TargetType ještě BasedOn - podědíš základní styl

BasedOn = {StatickResource{x:Type TextBox}}
Nahoru Odpovědět 19.2.2015 10:42
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Maros2470
sadlomaslox25:

To cos udelal je ze ses pokousel zmenit control template tak ze si zmazal hlavni prvek co tam byl a nahradil ho uplne nejakym jinym. Budto to musis nastavit co jde tak pres obyc Style settery nebo pro manipulaci s control templatem si precti nejaky tutorial jako napr. https://msdn.microsoft.com/…s.85%29.aspx?… (neni to moc dobry totorial sice ale myslim ze tam dela presne to co chces delat ty.
Musis mit border a v borderu musi byt <ScrollViewer x:Name="PART_Con­tentHost"

 
Nahoru Odpovědět 19.2.2015 10:51
Avatar
Maros2470
Člen
Avatar
Maros2470:

Díky za rady

 
Nahoru Odpovědět 19.2.2015 11:33
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 8 zpráv z 8.