WPFKolejny wpis, który powstał ze słowa kluczowego wpisanego do wyszukiwarki Google przez pewnego studenta. Oj biedni studenci jacy to oni trudne programy mają do napisania xD.

W sumie ja na początków studiów w Białej Podlaskiej też nie byłem takim weteranem.

Nic śmiesznego.

Pomyślałem dlaczego by nie zrobić o tym wpis. W końcu obserwując ruch swojego bloga wiem jacy czytelnicy tutaj przychodzą i czego chcą. Niestety ,ale w tych czasach większość wiedzy trzeba znaleźć samemu.

30713447

Okej więc dzisiaj napiszemy program w WPF, który zapiszę twoje imie i nazwisko do pliku.

Nie martw się chłopie zaraz napiszesz ten program w 5 minut.

Uruchom Visual Studio 2010/2012 i wybierz “New Project”.

Z nowego okna dialogowego wybierz “WPF Application”. Nazwij swoją aplikację jak chcesz. Jeśli to dla ciebie istotne możesz też zmienić lokację w której zostanie utworzony projekt.

image

Jeśli wybrałeś wszystko tak jak należy po prawej stronie powinieneś zobaczyć następujący układ projektu.

image

Na początek kliknij dwa razy na plik “MainWindows.xaml”. Do wyglądu aplikacji dodamy dwa pola tekstowe i przycisk. W polach tekstowych napiszesz swoje imię i nazwisko ,a po naciśnięciu przycisku te informacje zostaną zapisane do pliku.

image

Po prawej stronie odnajdź pasek “Toolbox” i znajdź w nim kontrolkę “TextBox” tak jak jest to przedstawione na obrazku.

Przeciągnij tą ikonkę ,a potem upuść na białe okno graficzne naszej aplikacji. Alternatywnie możesz zaznaczyć daną kontrolkę ,a po naciśnięciu na białe okno graficzne zostanie ona także dodana.

wffiel

W analogiczny sposób dodaj kolejne pole tekstowe oraz kontrolkę przycisk “button”. Powyższy gif powinien ci pomóc bardziej niż tysiąc słów.

Po dodaniu kontrolek możesz zauważyć ,że do okna poniżej został dodany nowy kod. Na obrazku gif powyżej zielone podkreślenie zaznaczyło mi te kontrolki.

Ten kod nazywa się XAML i opisuję on wygląd aplikacji.

<TextBox Height="23" HorizontalAlignment="Left" Margin="37,29,0,0" Name="tb_Name" VerticalAlignment="Top" Width="120" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="37,58,0,0" Name="tb_SurName" VerticalAlignment="Top" Width="120" />
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="163,58,0,0" Name="btnConfim" VerticalAlignment="Top" Width="75" Click="btnConfim_Click" />

W poniższym kodzie zmień parametr “Name” dla texbox-ów i przycisku. Ja swoje pola tekstowe nazwałem tb_Name i tb_SurName ,a przycisk “btnConfirm”.

Za pomocą tych nazw będziemy się odwoływać do tych kontrolek w kodzie C#.

Kliknij dwa razy na przycisk ,aby Visual Studio za ciebie dodało zdarzenie kliknięcia i w C# i XAML.

Twój kod boczny C# mniej więcej powinien wyglądać tak.

using System.Windows;

namespace WPFNameFileSave
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void btnConfim_Click(object sender, RoutedEventArgs e)
        {
            
        }
    }
}

Teraz przy deklaracji zdarzenia “btnConfim_Click” między klamerkami musimy dodać kod który stworzy plik i zapiszę nasze dane.

Zapis do pliku

Klasa StreamWriter zapisuje pliki tekstowe. Jest używana ona w wielu programach C# i jest ona łatwa w użyciu.

Najlepiej korzystać z niej przy użyciu klauzury using. W ten sposób mamy pewność ,że pamięć potrzebna do stworzona tego obiektu została zwolniona. Klasa ta posiada wiele konstruktorów oraz metod.

using System.IO;
using System.Windows;

namespace WPFNameFileSave
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void btnConfim_Click(object sender, RoutedEventArgs e)
        {
            using (StreamWriter writer = new StreamWriter("Hi_My_Name_Is.txt"))
            {
                writer.Write("Zapisuje tekst");
                writer.WriteLine("Zapisuje tekst i tworze znak nowej linii");
                writer.WriteLine(tb_Name.Text);
                writer.WriteLine(tb_SurName.Text);
            }
        }
    }
}

Aby skorzystać z klasy “StreamWriter” trzeba dodać przestrzeń nazw “System.IO” . Jak widzisz do kodu C# na samej górze został dodany kod “using System.IO”. Słowo kluczowe “using” w różnych miejscach znaczy różne rzeczy w tym wypadku jest to deklaracja przestrzeni nazw.

W zdarzeniu kliknięcia jest tworzony nowy obiekt klasy StreamWriter. Jako parametr w konstruktorze przyjmuje on nazwę pliku do które zostaną zapisane nasze dane. Klasa ta oczywiście ma dużo więcej konstruktorów, które są dopasowane do innych scenariuszy niż ten.

Potem używając metody “Write” lub “WriteLine” mogę zapisać tekst do pliku.

image

Aby zapisać tekst, który został podany do pól tekstowych muszę odwołać się do nich poprzez ich nazwę ,a potem wybrać ich właściwość “Text” która przechowuje zapisaną przez użytkownika wartość.

image

Uruchom program wybierając z menu głównego “Debug-> Start Debugging“ lub wciskając F5.

image

Naciśnij przycisk i twoje imię i nazwisko powinno być zapisane do pliku.

Do jakiego pliku? Gdzie jest ten plik?

Ten plik znajduję się w (folderze twojej aplikacji)/bin/Debug

image

Jego zawartość powinna być następująca.

Zapisuje tekstZapisuje tekst i tworze znak nowej linii
Cezary
Walenciuk

To wszystko co musisz wiedzieć ,aby napisać taką prostą aplikację.