[ 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 :)