[ wex-alpha @ 04.06.2010. 13:30 ] @
| Imam klasu koja customizira combobox. Zelim da napravim vlastitu kontrolu koja ce da koristi tu klasu.
Klasa pocinje:
Code (csharp):
namespace nesto
{
public class FilteredComboBox : ComboBox
{
////
// Public Fields
////
Kako sad da napravim svoju kontrolu i da je ubacim u toolbox?
---------------
Probao sam:
Project->Add User Control.
Onda sam u cs fajlu moje novostvorene custom controle izjmenio base klasu u FilteredComboBox. Kompajlirao projekat... i nigdje mi nema *.dll-a moje nove kontrole :( |
[ wex-alpha @ 04.06.2010. 14:23 ] @
Provalio sam kako ih dodati dinamicno.
Instancirao sam svoj novi combobox
mojamutatorklasa combicboxic = new mojamutatorklasa();
onda sam podesio display propertije (height, margin, widht)
Nakon toga sam tu novu kotrolu postavio u container. U mom slucaju koristio sam grid kao container. Naravno, morao sam mu ime dodijeliti.
<Grid Name="strasnigrid" Width="423">
</Grid>
strasnigrid.Children.Add(combo);
I u run time, pojavi se moja kontrola. Sweet.
Ali, jos uvijek nisam rijesio kako postaviti moju kontrolu u tool box? :(
[ Shadowed @ 04.06.2010. 14:33 ] @
Ne znam za Toolbox, ali da bi dobio u xaml-u svoju kontrolu moras dodati u <Window> delu atribut xmlns:my="tvojassembly". Umesto my mozes korsititi bilo sta sto se vec ne koristi. Onda dodajes sa <my:ImeKontrole>.
[ Dejan Carić @ 04.06.2010. 15:27 ] @
Desni klik na ToolBox, Choose Items.. i tu je nađi po nazivu.
Citat:
wex-alpha: Kompajlirao projekat... i nigdje mi nema *.dll-a moje nove kontrole :(
Ne kreira se posebni dll za svaku klasu (kontrolu) koju napraviš. Ukoliko unutar
solution-a nisi napravio novi
Class Library projekat za novu kontrolu, ona se nalazi unutar tvog .exe fajla.
[ wex-alpha @ 04.06.2010. 20:05 ] @
@Shadowed
Uspjeo sam je prikazati iz XAML-a, ali umjesto mog comboboxa imam samo praznu kutiju. Kada odem u properties kutije, vidim da je nasljedila dodatne properties od moje klase. Mogu joj mijenjati gotovo i sve sto i normalnoj kontroli, ali ona ostaje kutija :(
[code:xaml]
<MyNamespace:mojakontrolica Margin="28,0,75,115" BorderThickness="1" Text="test" Background="Azure" x:Name="combo1" Height="83" VerticalAlignment="Bottom">
</MyNamespace:mojakontrolica>
[/code]
Kada je pokrenem dinamicki, onda je super prikazan... bas kako treba.
@Dejan caric
Kontrola mi se zove "mojakontrolica", i ne postoji tamo gdje si mi rekao da trazim. Pokusavao sam rucno da dodam svoj assembly, ali mi izbaci error gdje kaze da nema komponenata u mom exe faju koji se mogu staviti na toolbox.
[ wex-alpha @ 04.06.2010. 20:11 ] @
@Dejan Caric
Otisao sam u WPF components i tu dodao svoj assembly, nakon toga mi se pojavila mojakontrolica u toolboxu. Ali ispoljava iste simptome kao i kada je dodam u XAML-u.
Opet da kazem, kada je dinamicki dodam... radi.
[ wex-alpha @ 04.06.2010. 20:16 ] @
Super!!!!
Problem rijesen. Greska u imenu kontrole. Sada se fino nalazi na toolboxu, i mogu sa njom da radim sta zelim.
Mnogo vam hvala :)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.