NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Poggy
Člen
Avatar
Poggy:11.2.2018 12:08

Ahoj, snažím se začít s použitím této funkce ve WPF. Shlédl jsem několik tutoriálů i kódů, ale mám jeden zásadní problém. Nedaří se mi moje první pokusná aplikace sestavit. Postupji následovně:

  • Mám do porjektu staženy Material Design, viz. obrázek
  • Zkoušel jsem i postupovat dle návodu zde: http://mahapps.com/…k-start.html#… Výsledek ovšem žádný. Zkusil jsem v rozporu s návodem i CTRL+C a CTRL+W, ale výsledek žádný. Viz.:

XAML:

<Controls:MetroWindow
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfMaterialDesignUvod"
        xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
        Title="Material Design Demo" Height="100" Width="525">

    <!--Grid definitions-->
    <Grid Margin="20" VerticalAlignment="Top">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="auto"/>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="auto"/>
        </Grid.ColumnDefinitions>

        <!--Kontorols-->
        <TextBlock Grid.Column="0" Text="Name:" Margin="0,0,5,0"/>
        <TextBox Grid.Column="1" Margin="0,0,5,0"/>
        <Button Grid.Column="3" Content="Submit" Margin="0,0,5,0"/>
    </Grid>
</Controls:MetroWindow>

CodeBehind:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using MahApps.Metro.Controls;

namespace WpfMaterialDesignUvod
{
    /// <summary>
    /// Interakční logika pro MainWindow.xaml
    /// </summary>
    public partial class MainWindow : MetroWindow
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}

Apps.xaml

<Application x:Class="WpfMaterialDesignUvod.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:WpfMaterialDesignUvod"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
                <!-- Accent and AppTheme setting -->
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

V náhledu desgnera se mi změní vzhled tlačítka, ale při pokusu o sestavení dojde k chybě a zobrazí se hláška jestli spustiti poslední úspěšné sestavení. Zde asi musím udělat ještě něco, ale nevím co nebo kde je chyba.

  • Na youtubu jsem našel několik videí s touto tématikou, ale vždy se zaseknu ve stejném bodě. Ideálně asi ukáži na příkladu. Zkouším kopírovat následující video: https://www.youtube.com/watch?… Problém nastane v čase cca 7:10. Kód mám přitom identický. Jen v tomto videu je jiný kód v apps.xaml. Poradí nědo co dělám blbě nebo odkáže na jíné tutoriály? Snažím se o svůj první pokus, takže úplný základ stačí. Děkuji za jakoukoliv radu.
 
Odpovědět
11.2.2018 12:08
Avatar
Lako
Člen
Avatar
Odpovídá na Poggy
Lako:11.2.2018 12:14

Tak ti to musí psát nějaký error, ny?

 
Nahoru Odpovědět
11.2.2018 12:14
Avatar
Poggy
Člen
Avatar
Odpovídá na Lako
Poggy:11.2.2018 12:21

Bohužel to žádnou chybu nehlásí, nic není podržené a ani jiný náznak problému. Až při sestavení to spadne, ale zase bez chyby, jen dotaz na zobrazení posledního úspěšného sestavení. Buď mám něco špatně a nevím a nebo je špatná instalace VS a mohl bych jí zkusit naistalovat znovu, ale to se mi nechce. To bych viděl jako poslední možnost.

 
Nahoru Odpovědět
11.2.2018 12:21
Avatar
Lako
Člen
Avatar
Odpovídá na Poggy
Lako:11.2.2018 12:26

V error listu taky nic? Podle mě to budeš mít někde špatně nareferencovaný či co... Gitni to někam, ať se na to můžu podívat.

 
Nahoru Odpovědět
11.2.2018 12:26
Avatar
Poggy
Člen
Avatar
Odpovídá na Lako
Poggy:11.2.2018 12:38

Na error list jsem zapomněl a nepodíval se do něj. Je tam error CS0103: Název InitializeComponent v aktuálním kontextu neexistuje.
Celý projekt je zde: http://leteckaposta.cz/590468072

 
Nahoru Odpovědět
11.2.2018 12:38
Avatar
Lako
Člen
Avatar
Odpovídá na Poggy
Lako:11.2.2018 12:47

Další hint: Nemáš specifikovaný x: Class v MainWindow.xaml.. to bude ono..

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
11.2.2018 12:47
Avatar
Poggy
Člen
Avatar
Odpovídá na Lako
Poggy:11.2.2018 13:03

Děkuji za nalezení chyby, sice nebyla jedinná, ale zbytek už jsem dokázal vyřešit. Jsem zvyklý mazat např. nepotřebné usingy z WF, ale tady to chce být opatrnější s mazáním v mainwindows.xaml. Díky.
Dotáhl jsem ten vzorový příklad a už to chodí. nyní si hrát a zkoušet co kde a jak změnit.

 
Nahoru Odpovědět
11.2.2018 13:03
Avatar
Poggy
Člen
Avatar
Poggy:11.2.2018 15:14

Ještě mám jeden dotaz. V tomto videu https://www.youtube.com/watch?… v čase 1:25 Má následující kód:

<Application x:Class="WpfAnimatedMenu.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:WpfAnimatedMenu"
             StartupUri="MainWindow.xaml">
    <Application.Resources>

    </Application.Resources>
</Application>

Bohužel netuším jak udělat následují krok s vygenerováním kódu mezi <Application.Re­sources> vygenerován kód na videu </Application­.Resources>.
Zatím jsem to kopíroval z webu, ale musí to jít i jinak. Případně kde najdu něco jako knihovnu s popisem? Díky za radu.

 
Nahoru Odpovědět
11.2.2018 15:14
Avatar
Odpovídá na Poggy
Michal Štěpánek:12.2.2018 10:04

Mám pocit, že to tam spíš odněkud zkopíroval, než že by to nějak "generoval"...

Nahoru Odpovědět
12.2.2018 10:04
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Poggy
Člen
Avatar
Odpovídá na Michal Štěpánek
Poggy:12.2.2018 17:46

To jsem si myslel taky. Takže jsem to opsal, ale poté jsem si všiml jedné nesrovnalosti v mainWindow.xaml.
V čase 1:24 vypadaj kód takto:
https://ibb.co/kKvs87

Poté vložil kód a aniž by do mainWindow.xaml sáhl, kód najednou vypadal takto (změny červeně označeny):
https://ibb.co/kMkYGS

Když to přepíši ručně, tak to funguje, ale spíš se obávám, že to není správná cesta. Hodlám ještě chvíli bádat. Líbilo by se mi umět takto jednoduše tvořit takovýto UI. Je to něco, kvůli čemu jsem začal s WPF.NET. Vypadá to moderně, jednoduše a funkcionalita tlačítek je dobře známa z mobilních zařízení, takže žádný zbytečný texty na tlačítkách apod. Líbí se mi to opravdu hodně.

 
Nahoru Odpovědět
12.2.2018 17:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.