Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Velicina kontrola na razlicitim rezolucijama

[es] :: .NET :: WPF Programiranje :: Velicina kontrola na razlicitim rezolucijama

[ Pregleda: 2560 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
85.158.38.*



+13 Profil

icon Velicina kontrola na razlicitim rezolucijama25.04.2010. u 10:04 - pre 170 meseci
Aplikacija koju radim na 22 monitoru uopste ne izgleda isto na manjim monitorima.

Kako da napravim da mi se elementi forme (buttons, txt boxes i ostali elementi), automatski povecavaju/smanjivaju na osnovu velicine monitora?

Jer kad pokrenem aplikaciju na manjem monitoru, sve pogresno izgleda.

Pretpostavljam da je u pitanju jednostavno rjesenje, ali ne mogu ga naci.




 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
85.158.38.*



+13 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 10:17 - pre 170 meseci
Na pamet mi padaju dva rjesenja, ali ne mogu vjerovat da ne postoji automatska opcija.


1. on Load Form utvrditi trenutnu velicinu rezolucije, i shodno tome povecati/umanjiti sve elemente na formi.

2. Napraviti dodatnu formu-e za razlicite rezulucije.


Rjesenje pod 2 mi se cini pravi overhaul...

Rjesenje pod 1 se cini kako tako prihvatljivo.

Ako ne postoji neki teci nacin, ako moze par smjernica kako to izvesti? :)


Hvala.
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
85.158.38.*



+13 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 10:54 - pre 170 meseci
Gdje god sam gledao, svi kazu da:

1. Ufatim trenutnu rezoluciju.
2. Preko switcha podesim pojedinacno kontrole, i zavisno od rezolucije stimam njihove properties:
kontrola1. width
kontrola1. height
kontrola1.margin




Na koji nacin bi vi to rjesili?

 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
85.158.38.*



+13 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 12:03 - pre 170 meseci
Stavio sam kontrole u wrappanel.

Te kontrole imaju zaista mnogo animacija, tako da sam mislio da ce biti problem to sto su u wrapu. Ali izgleda da nije. Sve animacije izgledjau dobro, i sto je najvaznije nisu limitirane sami wrappanelom.

Drugim rijecima, imam wrappanel odredjene velicine, a imam animaciju dugmeta koja ide totalnu u ljevu stranu ekrana. Nije problem, sve se odlicno odvija.

Sad, mi preostaje kako da zavisno od rezolucije postavim poziciciju samog wrappanela na ekranu, isto tako kako da podesim automatic resize elemenata unutar wrappanela.



Sorry ako ovo izgleda kao da chattam sa samim sobom, ali ne trosim vrijeme nego pokusavam da rijesim svoj problem. Mozda nekome drugom ovo moze biti od pomoci :)


Sad jos jedan problem :(

Imam nekoliko mediaelement u kojima se nalaze *.avi. Kako i njima automatski podesiti rezoluciju.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 12:49 - pre 170 meseci
Za pocetak, reci sta podrazumevas pod tim da ti aplikacija ostane ista. Da li hoces da ti button koji je npr. 70x30px ostane toliko piksela ili hoces da mu velicina na ekranu bude iste velicine? Ili, hoces da se smanji sve proporcionalno manjoj rezoluciji?

Mozes probati da sve stavis u ViewBox i videti da li je to ono sto ti treba.
http://msdn.microsoft.com/en-u....windows.controls.viewbox.aspx
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
85.158.38.*



+13 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 12:53 - pre 170 meseci
Zelim sve da se smanji proporcionalno rezoluciji.

Jer sada kad pokrenem aplikaciju na manjem monitoru, neke od kontrola su izvan ekrana.

Video je prevelik.

U mom slucaju ne bih trebao mjenjati velicinu dugmadi, ali velicinu videa sigurno trebam.


 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 14:11 - pre 170 meseci
Onda bi ViewBox trebao da ti resi stvar.
Mada, mozes i na drugacije nacine.. Sve zavisi kako si organizovao layout...
Recimo, ako ti je HorisontalAlignment="Stretch" kontrola ce menjati velicinu na osnovu njenog container-a po horizontali. Analogno je za visinu.
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
85.158.38.*



+13 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 14:28 - pre 170 meseci
Probat cu viewbox pa javim kako sam prosao :)


Hvala.
 
Odgovor na temu

dzigilibonglica
NS

Član broj: 200040
Poruke: 294



+17 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 16:06 - pre 170 meseci
Evo kako ja to radim, jes da je VB, ali razumljivo je koji god jezik da pricash :)

Ja sve programe koji treba da rade u FullScreenu ili max varijanti, pravim prema rezoluciji svog monitora (1680x1050) pa kad se ucita u drugacijoj rezoluciji sve srazmerno smanjim ili povecam.

Prvi modul koji se ucita po startu aplikacije izgleda ovako i ima jednu javnu proceduru koja se zove Podesi:

Code:

Public rx As Double
Public ry As Double
Public BrojacKontrola As Integer


Sub Main()
'Ovo je procedura koja se prva izvrsi pri startovanju programa

    rx = Screen.Width / 25200         '1680x15
    ry = Screen.Height / 15750        '1050x15 to je u pointima 1pixel=15 pointa

End Sub

Public Sub Podesi(ctrlControl As Control)
    On Error Resume Next
    Err.Clear
        ctrlControl.Width = ctrlControl.Width * rx
        ctrlControl.Height = ctrlControl.Height * ry
        ctrlControl.Top = Round(ctrlControl.Top * ry)
        ctrlControl.Left = Round(ctrlControl.Left * rx)
        'ctrlControl.FontSize = ctrlControl.FontSize * ry
        ctrlControl.Font.Size = ctrlControl.Font.Size * ry
    ' za linije
        ctrlControl.X1 = ctrlControl.X1 * rx
        ctrlControl.X2 = ctrlControl.X2 * rx
        ctrlControl.Y1 = ctrlControl.Y1 * ry
        ctrlControl.Y2 = ctrlControl.Y2 * ry
        
End Sub



I sada pri startu svake forme on prodje kroz sve kontrole i formu i resizuje:

Code:

Private Sub Form_Load()

    Me.Width = Me.Width * rx
    Me.Height = Me.Height * ry

    For BrojacKontrola = 1 To Me.Controls.Count
        Call Podesi(Me.Controls(BrojacKontrola - 1))
    Next BrojacKontrola
    
    
    
End Sub


I to resava posao. Za slike stavish svojstvo Strech=True i to je to.



 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
85.158.38.*



+13 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 18:48 - pre 170 meseci
Napravio sam odredjene pomake, ali jos mi ostaje par problema.

Evo sta sam popravio:
Sad sve kontrole ostaju na ekranu bez obzira koju rezoluciju odaberem. Prije kad postavim manju rezoluciju, obavezno je falilo nesto. Sada je sve na ekranu. Izgleda da je kod mene panel koji je drzao kontrole bio izvan grid-a.



Sta mi jos nedostaje:
Dinamicno smanjivanje/povecavanje kontrola kod povecanja/smkanejnja rezolucije. Kao sto mi je Shadowed predlozio Viewbox, probao sam. Ali velicina kontrole je uvijek staticna, t.j. dugmadi.

Gdje grijesim?
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 18:58 - pre 170 meseci
Hajd', ako nije problem, daj ovde xaml kod, tesko to ide ovako napamet...
 
Odgovor na temu

dzigilibonglica
NS

Član broj: 200040
Poruke: 294



+17 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 18:59 - pre 170 meseci
Jesi ti probao ovo sto sam ja postavio?

To radi sto posto, samo prilagodi malo sintaksu .NET-u
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
85.158.38.*



+13 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 19:04 - pre 170 meseci
@dzigilibonglica

Nisam jos probao, jer vjerujem da se moze to odraditi u XAML-u. Tako banalna stvar, a da nisu na to mislili.
Ako ne uspijem u XAML-u, onda cu morati u kodu. Nema mi druge.

Evo stize, XAML. Dakle WrapPanel sa dugmicima. Izvinjavam se na duzini istog.

Code (xml):

<WrapPanel Height="420" Name="wrapPanel2" Width="518" Margin="3,52,606,59" Grid.Row="3" Grid.ColumnSpan="3">
            <Button x:Name="dugme1" Width="146" Click="button2_Click" Content="1" RenderTransformOrigin="0.5,0.5" FontSize="55" FontFamily="Arial" Foreground="Blue" Height="93.129">
                <Button.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform />
                        <SkewTransform />
                        <RotateTransform />
                        <TranslateTransform />
                    </TransformGroup>
                </Button.RenderTransform>
            </Button>
            <Button x:Name="dugme2" Click="dugme2_Click" Content="2" RenderTransformOrigin="0.5,0.5" FontSize="55" Foreground="Red" d:LayoutOverrides="GridBox" Height="93.129" Width="146">
                <Button.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform />
                        <SkewTransform />
                        <RotateTransform />
                        <TranslateTransform />
                    </TransformGroup>
                </Button.RenderTransform>
            </Button>
            <Button x:Name="dugme3" Click="dugme3_Click" Content="3" FontSize="55" Foreground="Green" RenderTransformOrigin="0.5,0.5" Height="93.129" Width="145">
                <Button.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform />
                        <SkewTransform />
                        <RotateTransform />
                        <TranslateTransform />
                    </TransformGroup>
                </Button.RenderTransform>
                <Button.BitmapEffect>
                    <DropShadowBitmapEffect Color="Black" Direction="320" ShadowDepth="25" Softness="1" Opacity="0.5" />
                </Button.BitmapEffect>
            </Button>
            <Button Height="93" x:Name="dugme4" Click="dugme4_Click" Content="4" FontSize="55" Foreground="Teal" Width="147" RenderTransformOrigin="0.5,0.5">
                <Button.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform />
                        <SkewTransform />
                        <RotateTransform />
                        <TranslateTransform />
                    </TransformGroup>
                </Button.RenderTransform>
            </Button>
            <Button x:Name="dugme5" Click="dugme5_Click" Content="5" FontSize="55" Foreground="Yellow" Height="93" RenderTransformOrigin="0.5,0.5" Width="146">
                <Button.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform />
                        <SkewTransform />
                        <RotateTransform />
                        <TranslateTransform />
                    </TransformGroup>
                </Button.RenderTransform>
            </Button>
            <Button x:Name="dugme6" Click="dugme6_Click" Content="6" FontSize="55" Height="93" RenderTransformOrigin="0.5,0.5" Width="145">
                <Button.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform />
                        <SkewTransform />
                        <RotateTransform />
                        <TranslateTransform />
                    </TransformGroup>
                </Button.RenderTransform>
                <Button.BitmapEffect>
                    <DropShadowBitmapEffect Color="Black" Direction="320" ShadowDepth="25" Softness="1" Opacity="0.5" />
                </Button.BitmapEffect>
            </Button>
            <Button x:Name="dugme7" Click="dugme7_Click" Content="7" FontSize="55" Foreground="Chocolate" Width="147" Height="93.066" RenderTransformOrigin="0.5,0.5">
                <Button.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform />
                        <SkewTransform />
                        <RotateTransform />
                        <TranslateTransform />
                    </TransformGroup>
                </Button.RenderTransform>
            </Button>
            <Button x:Name="dugme8" Click="dugme8_Click" Content="8" FontSize="55" Foreground="Gold" Height="93" RenderTransformOrigin="0.5,0.5" Width="146">
                <Button.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform />
                        <SkewTransform />
                        <RotateTransform />
                        <TranslateTransform />
                    </TransformGroup>
                </Button.RenderTransform>
                <Button.BitmapEffect>
                    <DropShadowBitmapEffect Color="Black" Direction="320" ShadowDepth="25" Softness="1" Opacity="0.5" />
                </Button.BitmapEffect>
            </Button>
            <Button x:Name="dugme9" Click="dugme9_Click" Content="9" FontSize="55" Foreground="PaleVioletRed" Height="93" RenderTransformOrigin="0.5,0.5" Width="145">
                <Button.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform />
                        <SkewTransform />
                        <RotateTransform />
                        <TranslateTransform />
                    </TransformGroup>
                </Button.RenderTransform>
                <Button.BitmapEffect>
                    <DropShadowBitmapEffect Color="Black" Direction="320" ShadowDepth="25" Softness="1" Opacity="0.5" />
                </Button.BitmapEffect>
            </Button>
            <Button x:Name="dugme0" Click="dugme0_Click" Content="0" RenderTransformOrigin="0.5,0.5" FontSize="55" Foreground="FloralWhite" Width="147">
                <Button.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform />
                        <SkewTransform />
                        <RotateTransform />
                        <TranslateTransform />
                    </TransformGroup>
                </Button.RenderTransform>
                <Button.BitmapEffect>
                    <DropShadowBitmapEffect Color="Black" Direction="320" ShadowDepth="25" Softness="1" Opacity="0.5" />
                </Button.BitmapEffect>
            </Button>
        </WrapPanel>

 


[Ovu poruku je menjao Shadowed dana 25.04.2010. u 22:46 GMT+1]
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 20:50 - pre 170 meseci
@dzigilibonglica, u WPF-u je poenta dizajn sto je moguce vise uraditi deklarativno, u xaml-u.

wex-alpha, pogledacu.
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
85.158.38.*



+13 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 21:02 - pre 170 meseci
Shadowed, hvala :)
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama25.04.2010. u 21:46 - pre 170 meseci
Ovo verovatno nije detaljno tacno to sto ti treba, ali mozda ti posluzi kao usmerenje:

Code (xml):

<Window x:Class="WpfApplication1.Dugmici"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Title="Dugmici" Height="500" Width="500">
    <Window.Resources>
        <Style x:Key="MyButtonStyle" TargetType="Button">
            <Setter Property="HorizontalAlignment" Value="Stretch" />
            <Setter Property="VerticalAlignment" Value="Stretch" />
            <Setter Property="FontSize" Value="55" />
            <Setter Property="FontFamily" Value="Arial" />
            <Setter Property="Margin" Value="4" />
        </Style>
        <Style x:Key="MyShadowButtonStyle" BasedOn="{StaticResource MyButtonStyle}" TargetType="Button">
            <Setter Property="BitmapEffect">
                <Setter.Value>
                    <DropShadowBitmapEffect Color="Black" Direction="320" ShadowDepth="25" Softness="1" Opacity="0.5" />
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid Margin="10">
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Button x:Name="dugme1" Style="{StaticResource MyButtonStyle}" Content="1" Foreground="Blue" />
        <Button x:Name="dugme2" Grid.Column="1" Style="{StaticResource MyButtonStyle}" Content="2" Foreground="Red" />
        <Button x:Name="dugme3" Grid.Column="2" Style="{StaticResource MyShadowButtonStyle}" Content="3" Foreground="Green" />
        <Button x:Name="dugme4" Grid.Row="1" Style="{StaticResource MyButtonStyle}" Content="4" Foreground="Teal" />
        <Button x:Name="dugme5" Grid.Row="1" Grid.Column="1" Style="{StaticResource MyButtonStyle}" Content="5" Foreground="Yellow" />
        <Button x:Name="dugme6" Grid.Row="1" Grid.Column="2" Style="{StaticResource MyShadowButtonStyle}" Content="6" />
        <Button x:Name="dugme7" Grid.Row="2" Style="{StaticResource MyButtonStyle}" Content="7" Foreground="Chocolate" />
        <Button x:Name="dugme8" Grid.Row="2" Grid.Column="1" Style="{StaticResource MyShadowButtonStyle}" Content="8" Foreground="Gold" />
        <Button x:Name="dugme9" Grid.Row="2" Grid.Column="2" Style="{StaticResource MyShadowButtonStyle}" Content="9" Foreground="PaleVioletRed" />
        <Button x:Name="dugme0" Grid.Row="3" Style="{StaticResource MyShadowButtonStyle}" Content="0" Foreground="FloralWhite" />
    </Grid>
</Window>



Samo vrati event handler-e. Usput sam ti malo sredio kod. Imao si render transform-e koji nisu nista radili i dosta redundantnih informacija pa sam to prebacio u stilove. Button-i ce menjati velicinu proporcionalno velicini prozora.
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
..to512.806592-163.bih.net.ba.



+13 Profil

icon Re: Velicina kontrola na razlicitim rezolucijama26.04.2010. u 07:34 - pre 170 meseci
Radi !!!

Malo sam se igrao, ponesto promjenio... ali radi. Svaka cast.

Ovaj dio koda koji si naveo mi se dopada. Dodjela stila. Nisam to tako radio, ali vidim korist od toga.
Ma odlicno. :)



Code:

<Style x:Key="MyButtonStyle"  TargetType="Button">
            <Setter Property="HorizontalAlignment" Value="Stretch" />
            <Setter Property="VerticalAlignment" Value="Stretch" />
            <Setter Property="FontSize" Value="55" />
            <Setter Property="FontFamily" Value="Arial" />
            <Setter Property="Margin" Value="4" />
        </Style>

 
Odgovor na temu

[es] :: .NET :: WPF Programiranje :: Velicina kontrola na razlicitim rezolucijama

[ Pregleda: 2560 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.