#c# #wpf #xaml #visual-studio-2015 #start-page
#c# #wpf #xaml #visual-studio-2015 #начальная страница
Вопрос:
Мне нужен небольшой толчок для создания «Начальной страницы» Visual Studio в версии 2015. Есть старая информация (https://msdn.microsoft.com/en-us/library/Ee663382 (v = vs.120).aspx) и некоторые проекты в галерее Visual Studio (например, «BetterStartPage» или «SolutionStartPage». Возможно, «Пользовательский шаблон проекта начальной страницы» устарел:- (
Я начинаю проект с этого руководства: https://msdn.microsoft.com/en-us/library/ff425532 (v = против 140).aspx Но шаги и информация довольно… коротко.
Вот моя проблема: я компилирую проект библиотеки пользовательских элементов управления и выполняю шаги ручной установки, упомянутые в статье. Я могу выбрать свою пользовательскую стартовую страницу, но она не запускает мой пользовательский интерфейс. Страница просто пуста. Похоже, что код в DLL не выполняется.
Вот файл test-XAML:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:MyNamespace="clr-namespace:StartPageControl;assembly=StartPageControl"
xmlns:vs="clr-namespace:Microsoft.VisualStudio.PlatformUI;assembly=Microsoft.VisualStudio.Shell.14.0"
xmlns:vsfx="clr-namespace:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.14.0"
xmlns:MeineControls="clr-namespace:StartPageControl"
xmlns:local="clr-namespace:StartPageControl"
x:Class="StartPageControl.UserControl1"
mc:Ignorable="d"
Height="350" Width="525">
<Grid>
<Grid x:Name="LayoutGrid" >
<Button Click="Button_Click" Content="push me" Foreground="black" />
<Label x:Name="label" Content="Label" HorizontalAlignment="Left" Margin="720,171,-295,0" VerticalAlignment="Top" Width="100"/>
</Grid>
</Grid>
</UserControl>
UserControl1.xaml.cs
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;
namespace StartPageControl
{
/// <summary>
/// Interaktionslogik für UserControl1.xaml
/// </summary>
public partial class UserControl1 : UserControl {
public UserControl1()
{
InitializeComponent();
ButtonApp ButtonApp1 = new ButtonApp();
LayoutGrid.Children.Add(ButtonApp1 as UIElement);
}
private void Button_Click(object sender, RoutedEventArgs e) {
label.Content = "Something happend!";
}
}
}
Редактировать:
Вот шаги, которые я сделал:
- Создание нового проекта WPF Control Libraby
- Добавьте новый XAML и добавьте / измените пространства имен
- Добавьте некоторый «код позади», например, кнопку с событием щелчка
- Скомпилировать
- Скопируйте файл XAML в %USERPROFILE%My Documents Visual Studio 2015StartPages
- Скопируйте проект .DLL в Common7 IDE PrivateAssemblies
- Запустите новый VS и выберите новую стартовую страницу
- Получение ошибки (перевод с немецкого): «Система.Windows.Разметка.Исключение XamlParseException» … «Ошибка при создании ‘Click’ из текста’Button_Click'» .. поэтому я попытался использовать UserControl в UserControl (как вы можете видеть в коде выше). Появляется сообщение «{clr-namespace:StartPageControl} ButtonApp не может быть создано»
:-(Мне кажется, VS не использует «Code Behind» / DLL…
Я знаю, что это своего рода рассеянный вопрос. Кто-нибудь знает лучшую начальную точку?
ПРАВКА 2: вставьте весь тестовый код.
Комментарии:
1. Проверьте закрывающий тег здесь:
<MyControls:ButtonApp></MeineControls:ButtonApp>
, Я создал его, и он отлично работает.2. Спасибо. Да, … я потерял эту страницу, переведя немецкое «Meine» на «My» 😉 Но, … не могли бы вы, пожалуйста, описать полный список шагов от начала до рабочей начальной страницы?
3. Исключение XamlParseException также может означать, что в вашем xaml есть ошибки. Либо это, либо ошибка в вашем конструкторе viewmodels. В вашем коде нет «Button_Click», поэтому трудно сказать — не могли бы вы добавить полный пример своего кода?
4. ОК. Спасибо. Вставил весь тестовый код…