• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed C# WPF - problem z ucinaniem tekstu przez Grid

Object Storage Arubacloud
0 głosów
275 wizyt
pytanie zadane 30 kwietnia 2019 w C# przez gagyn Stary wyjadacz (11,050 p.)
zamknięte 2 maja 2019 przez gagyn

Layout programu, który piszę nie zachowuje się do końca tak jakbym chciał. Dopiero zaczynam naukę WPF, dlatego nie wiem w jaki sposób wyeliminować zachowanie takie jak na filmie: https://drive.google.com/file/d/13b2m5PXddG6OU_82sfCkC4zfJyvzxTfl/

Edit: Chciałbym aby tekst nie był w żaden sposób ucinany oraz nie wiem, dlaczego szerokość kolumn Grida jest zmiejszana, pomimo tego, że jeszcze jest miejsce po prawej stronie (jak na filmie).

Kod jest za obszerny na wklejanie, więc podaję linki do konkretnych plików na GitHubie:

xaml z wyglądem okna (cały widok okna poza buttonami [czyli tekst z danymi], jest jako scrollViewer): MainWindow.xaml

klasa tworząca WrapPanel, który jest następnie przypisywany do scrollViewer.ContentWrapPanelMaker.cs

klasa podstawowa tworząca pojedynczy Grid, który jest dodawany do powyższego WrapPanelu: GridMaker.cs

przykładowa klasa, która dziedziczy po klasie GridMaker: DaysGridMaker.cs

 

Z góry dziękuję za pomoc.

PS. Jeżeli ktoś chciałby zobaczyć sam na czym polega problem, to proszę o ściągnięcie kodu z GitHuba i skompilowanie. Program potrzebuje wczytać plik w formacie .json, więc podaję przykładową zawartość, którą należy wkleić do pliku z formatem json:

{
  "participants": [
    {
      "name": "Jan Kowalski"
    },
    {
      "name": "Jan Nowak"
    },
    {
      "name": "Jakub Kowalski"
    }
  ],
  "messages": [
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 100234345355,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Kowalski",
      "timestamp_ms": 100233453446,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 100234453489,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 100234447878,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jakub Kowalski",
      "timestamp_ms": 1002345433454,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 10018378378234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1001289764634,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 100689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },  
	{
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 14786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	{
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1689678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 127667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 1786487234,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 189678234,
      "content": "bla bla bla",
      "type": "Generic"
    },
    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 17667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 17667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
	    {
      "sender_name": "Jan Nowak",
      "timestamp_ms": 17667867834,
      "content": "bla bla bla",
      "type": "Generic"
    },
  ],
  "title": "example_messes",
  "is_still_participant": true,
  "thread_type": "RegularGroup"
}

 

komentarz zamknięcia: Rozwiązałem problem.
komentarz 30 kwietnia 2019 przez NowyUrzydgownig Mądrala (5,090 p.)
Ustaw HorizontalScrollBarVisibility na Visible albo Hidden - wtedy nie będzie ci się nic chować.
komentarz 30 kwietnia 2019 przez gagyn Stary wyjadacz (11,050 p.)
Wiem że to by rozwiązało problem, jednak chciałbym aby po zmniejszeniu szerokości elementy przeskakiwały do następnej linijki. Nie przepadam za przewijaniem horyzontalnym. Jest jakieś inne rozwiązanie?
komentarz 30 kwietnia 2019 przez NowyUrzydgownig Mądrala (5,090 p.)
Najprostsze to stosuj 'if'y' i jak osiąga jakąś szerokość to zmieniaj położenie w twoim Grid. Polecam poszukać w Internecie innych rozwiązań, może można to zrobić jakoś inaczej.
komentarz 30 kwietnia 2019 przez gagyn Stary wyjadacz (11,050 p.)
Właśnie moim problemem jest to, że nie wiem czego szukać. Domyślam się, że da się dodać jakąś właściwość dla obiektu WrapPanel albo jakiegoś Grida.

Nie wiem z jakiego powodu kolumny (a razem z nimi tekst) mają zmiejszaną szerokość, pomimo tego, że jest jeszcze tyle wolnego miejsca po prawej stronie. Właściwości MinWidth i MinHeight mam ustawione tak, aby cały content się zmieścił. Jednak z powodu zostawiania tego wolnego miejsca, nie mieści się.
komentarz 30 kwietnia 2019 przez NowyUrzydgownig Mądrala (5,090 p.)
Szukaj pod nazwą resize wpf. https://stackoverflow.com/questions/19393774/how-to-make-all-controls-resize-accordingly-proportionally-when-window-is-maximi - tutaj jest częściowa odpowiedź na twoje pytanie. Możesz użyć metody onSizeChange dla WPF, aby wywoływać jakąś funkcję, która będzie zmieniać pozycje elementów. Możesz też bindować aktualny rozmiar okna i w zależności od tego ustalać dynamicznie pozycje elementów. Jednak powinieneś się zastanowić czy na pewno tego potrzebujesz.
komentarz 2 maja 2019 przez gagyn Stary wyjadacz (11,050 p.)
Tylko, że ja bym chciał uzyskać odwrotny efekt. Chciałbym, aby rozmiar był ustawiony na stałe, a wielkość okna nie wpływała na szerokość kolumn.
komentarz 2 maja 2019 przez gagyn Stary wyjadacz (11,050 p.)
Udało mi się poradzić z problemem - zauważyłem, że jest zbędna kolumna, która zajmowała miejsce, pomimo tego, że była pusta.

Podobne pytania

0 głosów
1 odpowiedź 188 wizyt
pytanie zadane 27 stycznia 2020 w C# przez Kamilos1906 Nowicjusz (240 p.)
0 głosów
0 odpowiedzi 250 wizyt
pytanie zadane 5 sierpnia 2017 w C# przez niezalogowany
0 głosów
1 odpowiedź 212 wizyt
pytanie zadane 27 czerwca 2023 w HTML i CSS przez Skulak Nowicjusz (220 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...