- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
- Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
- Már a Sparkle is jegyezhet fehérbe öltöztetett videokártyákat
- Modern monitorokra köthető 3dfx Voodoo kártya a fészerből
- Kormányok / autós szimulátorok topicja
- Milyen CPU léghűtést vegyek?
- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- Fejhallgató erősítő és DAC topik
- Publikálta a Microsoft az MS-DOS 4.0 forráskódját
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Modern monitorokra köthető 3dfx Voodoo kártya a fészerből
- OLED TV topic
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Vezetékes FEJhallgatók
Hirdetés
-
Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
ph Az AMD Full HD felbontáshoz ajánlja a legnagyobb Navi 33 alapú GPU-ját, melyet a PowerColor tálalásában próbáltunk ki.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
Az Apple iPadOS-t is megrendszabályozza az EU
it Az EB közölte: az Apple iPad táblagépekre írt iPadOS rendszere is kapuőrnek számít, az üzleti felhasználókra gyakorolt fontossága miatt.
Új hozzászólás Aktív témák
-
Karma
félisten
válasz zsambek #5550 üzenetére
A Dictionaryk [] operátora mindkét irányba működik. Ha az értékadás jobb oldalán van, akkor kiveszi az adott kulcshoz tartozó értéket; ha meg a bal oldalán, akkor az adott kulcs alá berakja az eredményt. Ez így megválaszolja a kérdést?
A másodiknál sem teljesen értem a kérdést. Pont az a lényege, hogy kulcs-érték párokat tárol, és gyorsan meg lehet találni, hogy melyik kulcshoz milyen érték tartozik.
“All nothings are not equal.”
-
zsambek
aktív tag
Szia,
Nagyjából így már érthető.
Következő probléma
static string szamozas(string szo)
{
char[] temp = new char[szo.Length];
for (int i = 0; i < szo.Length; i++)
{
temp[i] = szo[i];
}
int[] szamok = new int[szo.Length];
int lepteto = 0;
foreach (char x in temp)
{
if (x == 'a' || x == 'b' || x == 'c')
{
szamok[lepteto] = 2;
lepteto++;
}
if (x == 'd' || x == 'e' || x == 'f')
{
szamok[lepteto] = 3;
lepteto++;
}
if (x == 'g' || x == 'h' || x == 'i')
{
szamok[lepteto] = 4;
lepteto++;
}
if (x == 'j' || x == 'k' || x == 'l')
{
szamok[lepteto] = 5;
lepteto++;
}
if (x == 'm' || x == 'n' || x == 'o')
{
szamok[lepteto] = 6;
lepteto++;
}
if (x == 'p' || x == 'q' || x == 'r' || x == 's')
{
szamok[lepteto] = 7;
lepteto++;
}
if (x == 't' || x == 'u' || x == 'v')
{
szamok[lepteto] = 8;
lepteto++;
}
if (x == 'w' || x == 'x' || x == 'y' || x == 'z')
{
szamok[lepteto] = 9;
lepteto++;
}
}
char[] kod = new char[szo.Length];
for (int i = 0; i < szo.Length; i++)
{
kod[i] = Convert.ToChar(szamok[i]);
}
return new string(kod);
}http://www.jos.hu/down/ErProg/Sms_szavak_feladat.pdf
Valamiért megkapja az értékét, mivel kiíratás közben az üres helyek megvannak, viszont nem vesz fel értéket, ez mitől lehet? Esetleg rosszul konvertálom át a szamok-at? Próbáltam locals-val, de nem tudom megnézni ott sajnos.
Köszönöm szépen,
zsambek` -
trisztan94
őstag
Sziasztok!
Van valami hasonló Windows Phone-ra, mint Androidon a Progress Dialog? Az a lényeg, hogy teljesen egyértelmű legyen a felhasználónak, hogy valami történik és addig nem nyúlhat a progihoz. Egy felugró ablak, amiben van egy progressbar és addig nem enged mást csinálni, amíg nincs vége annak a folymatnak.
Valami hasonló: [link]
Köszi!
[ Szerkesztve ]
https://heureka-kreativ.hu
-
Karma
félisten
válasz trisztan94 #5555 üzenetére
Ha letiltod a UI-t (például a PhoneApplicationPage-et, ami a képernyőn van, IsEnabled = false-ba rakod) és a státuszsáv beépített progress barját használod, az nem elég?
Mert ha nem az, akkor nincs mit tenni, mint kézzel építeni egyet. Mondjuk ha dialógus, én biztos a WPToolkit CustomMessageBoxából indulnék ki.
“All nothings are not equal.”
-
trisztan94
őstag
Nem is tudtam, hogy le lehet tiltani a UI-t Így viszont akkor elég lesz, köszönöm!
Más:
Lehet valahogy "előtérbe hozni" egy elemet? Van sok-sok gomb a képernyőn megjelenítve, azokat lehet drag and drop módszerrel húzogatni. Az lenne a cél, hogy az aktuálisan húzott elem a többi "fölött" legyen. Mint a z-index CSS-ben.
[ Szerkesztve ]
https://heureka-kreativ.hu
-
Alexios
veterán
válasz trisztan94 #5557 üzenetére
canvas.zindex
-
zsambek
aktív tag
Sziasztok,
Kész lett végül a 2007-es tavaszi érettségim. Használtam itt mindent. Szerencsére segítséget nem kellett már
http://www.jos.hu/down/ErProg/Sms_szavak_feladat.pdf
http://pastebin.com/8LWST1s9Az egyetlen egy kérdésem az, hogy a 207-es sorban ott miért a Key-t nézetem meg, miért nem a Valuet? Mivel a legtobbkilencid az egy szám, ami a tobbnel a Value-val kellene egyenlonek lennie, nem a Key-vel. A Key-be raktam a szavakat, míg a Value-be raktam a számokat.
Köszönöm a segítségeteket,
zsambek` -
trisztan94
őstag
Sziasztok!
Egy egyszerű MessageBox-ot akarok megjeleníteni egy OK és egy Cancel gombbal.
Ezt a kódot használom:
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
base.OnBackKeyPress(e);
MessageBoxResult result = MessageBox.Show("Biztosan visszalép mentés nélkül?", string.Empty, MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK) NavigationService.GoBack();
}Viszont akár OK-ra, akár Cancel-re nyomok, mindig visszaléptet.
Gondolom itt valami olyasmi probléma lehet, hogy az OnBackKeyPress amúgy is visszaléptetné a júzert, tehát valamivel meg kellene azt gátolni.
Köszi!
https://heureka-kreativ.hu
-
Karma
félisten
válasz trisztan94 #5561 üzenetére
Jól feltételezed, a back key visszaléptet magától, ha nem állítod az e.Cancel property-t true-ra.
Így kéne kinéznie, a sorrend se mindegy:
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
MessageBoxResult result = MessageBox.Show("Biztosan visszalép mentés nélkül?", string.Empty, MessageBoxButton.OKCancel);
e.Cancel = result != MessageBoxResult.OK;
base.OnBackKeyPress(e);
}[ Szerkesztve ]
“All nothings are not equal.”
-
trisztan94
őstag
Köszönöm szépen!
Még egy aprócska kérdésem lenne. Készítettem egy beállítások oldalt az app-nak. Eddig XML-ben tároltam az adatokat, most beraktam adatbázisba.
Az lenne a kérdés, hogy jó-e úgy, hogy a database = new Database() az nem a konstruktorban van? Azért lett az onNavigatedTo override-ba rakni, mert a database.GetSettings() metódus aszinkron és így nem tudtam a konstruktorban használni, külön metódust meg nem akartam meghívni. Nagyon ronda ez így?
private Database database;
private List<Database.Settings> settings;
public Settings()
{
InitializeComponent();
}
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
database = new Database();
settings = await database.GetSettings();
synchronizeCheckbox.IsChecked = Convert.ToBoolean(settings[0].Szinkronizalas);
textToSpeechCheckbox.IsChecked = Convert.ToBoolean(settings[0].Szovegfelolvaso);
meditativeModeCheckbox.IsChecked = Convert.ToBoolean(settings[0].MeditativMod);
meditativeModeVolumeSlider.Value = settings[0].MeditativMod;
dingDongVolumeSlider.Value = settings[0].DingDongHangero;
}https://heureka-kreativ.hu
-
Karma
félisten
válasz trisztan94 #5563 üzenetére
Nagyon durván ronda. Miért nem használsz IsolatedStorageSettingset?
“All nothings are not equal.”
-
trisztan94
őstag
Na igen, ilyenkor fogom a fejem Nem tudtam, hogy van ilyen. Gondolom az a sztenderd, szóval akkor átírom arra. Köszi.
Sajnos ilyenkor érzem meg a legjobban azt, hogy nincs a cégnél egy Senior WP-os (vagy akár C#-os) kolléga, akitől tudnék tanácsokat kérni. Juniorként nagyon sok dolgot nem tudok a rendszerről, kénytelen vagyok titeket zaklatni a hülyeségeimmel. Köszönöm a segítséget és a türelmeteket!
https://heureka-kreativ.hu
-
vimes
senior tag
Egy gyors, emellett lehet, h primitív kérdés, de húsz percnél többet nem szántam a keresésére, mert már ilyenre nem igazán jut idő.
Van egy egész szám, mondjuk 125. Ezt szeretném két tizedesjeggyel lekerekíteni, h 100-at kapjak eredményül. Először azzal próbálkoztam, h "Math.Round(szám,-2)" de egész számokra nem alkalmazható, illetve a kerekítés mértékét mutató második szám 0 és 15 közé eshet, szóval ez nem járható. Mivel tudnám ezt mégis megoldani?
"Ole, ole, ole, ola, der FCK ist wieder da! Ole ole, ole ola, die roten Teufel sind ganz wunderbar." Let's go Bezte!
-
Jester01
veterán
csharp> int x = 125;
csharp> Math.Round(x/100.0,0)*100
100
csharp> int x = 175;
csharp> Math.Round(x/100.0,0)*100
200Vagy
csharp> int x = 125;
csharp> int mod = x % 100;
csharp> x - mod + ((mod >= 50) ? 100 : 0);
100
csharp> int x = 175;
csharp> int mod = x % 100;
csharp> x - mod + ((mod >= 50) ? 100 : 0);
200Negatív számokkal vigyázni
[ Szerkesztve ]
Jester
-
vimes
senior tag
Köszönöm a válaszokat!
"Ole, ole, ole, ola, der FCK ist wieder da! Ole ole, ole ola, die roten Teufel sind ganz wunderbar." Let's go Bezte!
-
kexksz
addikt
Tudnátok ajánlani C# könyveket? Az "Együtt könnyebb a programozás - C#"-ot kiolvastam, de mivel ez a legelső programozási nyelvem sok rész volt benne, amit nem tudtam feldolgozni, tehát valami könnyebb olvasmány kéne.
-
Cathfaern
nagyúr
válasz Alexios #5571 üzenetére
És olyan könyvet tudtok ajánlani, ami nem kezdő programozóknak szól, hanem C#-ra áttanulóknak? Programozással nincs problémám, viszont eddig főleg nem OOP nyelvekben programoztam (C és PHP), igaz mellette foglalkoztam C++-al meg Java-val is, de csak érintőlegesen. Viszont a haladó C#-os könyvek túl magas szintről indítanak nekem, a kezdők viszont elindítják onnan, hogy mi az a ciklus meg elágazás...
-
Karma
félisten
válasz Cathfaern #5572 üzenetére
A C# 5.0 in a Nutshell esetleg? Szerintem pont arra való, amit kérdeztél. Plusz referenciának.
[ Szerkesztve ]
“All nothings are not equal.”
-
trisztan94
őstag
Kicsit régi dologra reagálok, de most jutottam el oda, hogy ezt a funkcionalitást bele kellene rakni végre.
Csináltam egy Grid-et XAML-ben, benne a három vízszintes gomb:
<Grid
x:Name="messageBoxButtonsGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Content="hello"
Grid.Column="0"/>
<Button Content="szia"
Grid.Column="1"/>
<Button Content="Mizu?"
Grid.Column="2"/>
</Grid>Majd a MainPage konstruktorába beraktam a következőt:
var messagebox = new CustomMessageBox()
{
Caption = "Caption szöveg",
Message = "Message szöveg",
Content = messageBoxButtonsGrid
};
messagebox.Show();Ezzel az exceptionnel száll el:
Mit csinálok rosszul?
https://heureka-kreativ.hu
-
Karma
félisten
válasz trisztan94 #5577 üzenetére
Nem kellene egy olyan Gridet megadni Contentnek, aminek van már szülője a hierarchiában.
Más szóval így nem lehet használni a CustomMessageBoxot; vagy csinálj egy UserControlt, amit kódban példányosítasz, vagy építsd össze a Gridet kézzel, és ezt az új példányt add meg Contentnek.
[ Szerkesztve ]
“All nothings are not equal.”
-
xxSanchez
őstag
-
tototos
őstag
Sziasztok!
Egy kis gui-s segítség kellene. Egy gantt chart-hoz hasonló felületet szeretnék megvalósítani, annyi lenne a lényeg, hogy a felbontása perc alapú legyen, és amikor közeledik a határidő akkor váltson pirosra a task és villogjon. A taskok feltöltése legyen viszonylag könnyen kivitelezhető akár webes felületről is. Van esetleg ötletetek hogy merre induljak el?
Köszi
-
trisztan94
őstag
Közben találtam még valamit, aminek a megvalósítására ötletem nincs.
Levideóztam az app Androidos verziójának működését: [link]
Egy ilyen dolgot Ti hogyan csinálnátok meg? Jelenleg csak egy sima Image van berakva egy Gridbe nekem.
Köszönöm!
https://heureka-kreativ.hu
-
Karma
félisten
válasz trisztan94 #5585 üzenetére
A Pivot template-jét talán át tudod szerkeszteni Blenddel annyira, hogy hasonlítson erre a valamire. De elég rossz ötlet egy-az-egyben Wp-re átlapátolni szerintem.
“All nothings are not equal.”
-
Karma
félisten
válasz trisztan94 #5579 üzenetére
Gondoltam segítek még egy lépéssel, mert odáig szép és jó, hogy összeraksz egy Gridet, azt is kezelni kéne, hogy melyik gombot nyomtad meg.
Lásd a következő kódot. A foreach ciklusban van a UI létrehozás, a körülötte egy async wrapper, illetve a legvégén másik metódusban példa, hogy hogyan lehet ezt használni.
public Task<int> ShowMultiButtonMessageBox(string caption, string message, IList<string> buttonContent)
{
var i = 0;
var tcs = new TaskCompletionSource<int>();
var grid = new Grid { Margin = new Thickness(0,24,12,0)};
var msgBox = new CustomMessageBox
{
Caption = caption,
Message = message,
Content = grid
};
foreach (var button in buttonContent.Select(content => new Button {Content = content}))
{
var index = i;
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star)});
grid.Children.Add(button);
Grid.SetColumn(button, i);
button.Click += (sender, args) =>
{
tcs.TrySetResult(index);
msgBox.Dismiss();
};
i++;
}
msgBox.Dismissed += (sender, args) => tcs.TrySetResult(-1);
msgBox.Show();
return tcs.Task;
}
private async void OnTestButtonClicked(object sender, RoutedEventArgs e)
{
var i = await ShowMultiButtonMessageBox("Test", "Press a button!", new[] {"Hello", "Szia", "Mizu"});
MessageBox.Show(string.Format("Valasz: {0}", i));
}[ Szerkesztve ]
“All nothings are not equal.”
-
trisztan94
őstag
Wow, nagyon szépen köszönöm, magamtól nehezen csináltam volna meg ilyenre.
Viszont van valami amit nem értek:
Ha bármilyen osztályba rakom, akkor hibátlan, viszont, ha a mainpage-be, akkor a buttonContent.Select-re a következő hibát dobja:
Error 5 'System.Collections.Generic.IList<string>' does not contain a definition for 'Select' and no extension method 'Select' accepting a first argument of type 'System.Collections.Generic.IList<string>' could be found (are you missing a using directive or an assembly reference?) C:\Users\*******\documents\visual studio 2013\Projects\Click4Skill Angol\Click4Skill Angol\MainPage.xaml.cs 121 50 Click4Skill Angol
Mindenhol máshol probléma mentes.
Ez mitől lehet?
[ Módosította: Racecam ]
https://heureka-kreativ.hu
-
Karma
félisten
válasz trisztan94 #5588 üzenetére
using System.Linq; a fájlod tetejére, és jó lesz.
A Select egy extension method, ami abból a névtérből jön.[ Szerkesztve ]
“All nothings are not equal.”
-
trisztan94
őstag
Tökéletes, köszönöm szépen!
Fekvő üzemmódban lenne használva, így a messagebox a helynek a felét tölti csak ki, a gombokban nem fér ki a szöveg teljesen.
Átírtam erre a gombok gridjének méretét:
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) });
grid.Children.Add(button);Így már kifér a gombokban lévő szöveg, viszont a képernyő 2/3-nál "levágja" a tartalmat. Tehát a szülő grid mérete nem elég széles - gondolom én.
Megpróbáltam annak is egy nagyobb szélességet megadni:
var grid = new Grid { Margin = new Thickness(0, 24, 0, 0), Width = 700 };
De semmi változás
https://heureka-kreativ.hu
-
Karma
félisten
-
trisztan94
őstag
Közben most ezzel bénázok.
A teljes képernyős móddal van egy kis probléma, miszerint, ha még nem mentette el a felhasználó a már módosított beállításait (pl. leveszi a pipát valamelyik checkbox-ról), akkor azok elvésznek amikor visszatér a ListPicker-ből. Ezt ki lehet valahogyan küszöbölni?
Továbbá az elemekkel való feltöltése sem teljesen világos. Lenne összesen 6-7 ilyen felugró ListPicker, amikben ki lehet választani azt a lehetőséget, ami a felhasználónak kell. Ezek a lehetőségek fixek, tehát szerintem (lehet megint rosszul gondolkodom) ide rendben van, ha beleírom a lehetőségeket a kódba, nem? Vagy mindenképpen Data Bindinggel csináljam?
Valahogy úgy gondolom ennek a feltöltését, hogy van a kiírt beállítás (legyen most az, amit linkeltem kép formájában: megjelenés, 5 választható opcióval, melyekből egyet lehet kiválasztani), és annak a radio buttonnak van egy értéke. Legyen most 0, 1, 2, 3 és 4. Amikor rábök a felhasználó, akkor az visszaküldi azt az értéket, de még nem menti el.
Vagy van esetleg valamelyikőtöknek már egy ilyen kész megoldása? Próbálgattam google-ben keresni, de nem nagyon találtam semmi ilyesmit
Köszi!
https://heureka-kreativ.hu
-
Karma
félisten
válasz trisztan94 #5593 üzenetére
Ebben az esetben valamit nagyon durván elbarkácsoltál, mert a ListPicker csak előrenavigációt csinál, semmi nem indokolja hogy a meglévő beállításoldalad újra létrejöjjön. Nem csináltál valami csúnyaságot az OnNavigatedFrom/Toban?
“All nothings are not equal.”
-
Karma
félisten
válasz trisztan94 #5592 üzenetére
Próbálkoztam egy kicsit vele, szerintem ezt nem fogod tudni a CustomMessageBox gyári állapotában így. A forráskódjában le lehetne ellenőrizni, de szerintem be van égetve, hogy milyen széles legyen a content fekvő állásban, és emiatt borul a történet.
Egyébként is az Auto szélességgel csínján kell bánni.
Szerintem azt megpróbálhatnád, hogy a Gridet lecseréled egy függőleges StackPanelre, és abba rakod a gombokat. De még jobb lenne, ha nem erőltetnéd a MessageBoxot - ami a screenshotból ítélve a mentalitást nem igazán járható út
“All nothings are not equal.”
-
Mbazsika
tag
-
Karma
félisten
válasz trisztan94 #5592 üzenetére
Kinyomoztam, a CustomMessageBox alap sablonjában be van égetve a 480-as szélesség a belső tartalomhoz. Ha veszed ezt a XAML-t és berakod az App.xaml-ödbe, és átírod a Width="480"-at (például kiveszed), akkor teljes szélességű belsőt csinálhatsz.
“All nothings are not equal.”
-
Karma
félisten
válasz Pttypang #5599 üzenetére
Úgy, hogy bár én nagyon kényelmesnek találom az IoC konténert, a kitalálása előtt is volt élet. Nevezz ki egy objektumot a viewmodelek létrehozásáért felelősnek fejben - például a ViewModelLocator elég kézenfekvő -, csinálj tagváltozókat a VM-eknek, és példányosítsd őket kézzel.
A példányokat meg propertyken át add oda a Page-eknek, mint általában szokás.
[ Szerkesztve ]
“All nothings are not equal.”
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Gyúrósok ide!
- Kormányok / autós szimulátorok topicja
- Milyen CPU léghűtést vegyek?
- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- Mozgásban a 33 Immortals
- ASUS routerek
- Fejhallgató erősítő és DAC topik
- Publikálta a Microsoft az MS-DOS 4.0 forráskódját
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Automata kávégépek
- További aktív témák...