Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > добавления элемента на Canvas.


Автор: KuMa1104 26.9.2010, 01:13
Здравствуйте.
Сделал элементарную страничку.
Код

<UserControl x:Class="RibbonPainter.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:RibbonPainter"
    xmlns:local1="clr-namespace:RibbonPainter.PaintApp">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="200" />
            <RowDefinition Height="200" />
        </Grid.RowDefinitions>
        <local:TestControll x:Name="Test"/>
        <Button  Grid.Row="1" Content="Load BackGround"  Name="LoadBackGrounButton"  Click="LoadBackGrounButton_Click" />
    </Grid>
</UserControl>


По нажатию на кнопку выполняется код
Код

namespace RibbonPainter
{
 public partial class MainPage : UserControl
 {
        public MainPage()
        {
            InitializeComponent();   
        }
        private void LoadBackGrounButton_Click(object sender, RoutedEventArgs e)
        {  
            Canvas mainCanvas = this.Test.testCanvas;
            string _imagePath = "Abelia.png";
            Image _image = new Image();
            BitmapImage _bitmapImage = new BitmapImage();
            _bitmapImage.UriSource = new Uri(_imagePath, UriKind.Relative);
            _image.Source = _bitmapImage;
            mainCanvas.Children.Add(_image);         
        }
 }
}

где this.Test.testCanvas; это userControl который лежит рядом с MainPage
Код

<UserControl x:Class="RibbonPainter.TestControll"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Canvas Name="testCanvas" Height="200" Width="200" />
</UserControl>

всё срабатывает по нажатию на кнопку и на канвасе появляется Image.

Теперь я делаю такой же контрол но он лежит в проекте в папке PaintApp.
Код

<UserControl x:Class="RibbonPainter.PaintApp.TestControll2"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Canvas Name="testCanvas" Height="200" Width="200" />
</UserControl>

И вместо предыдущего контрола добавляю его и хочу на него добавить Image.
Код

 <local1:TestControll2 x:Name="Test"/>
 
вместо 
Код

  <local:TestControll x:Name="Test"/>


ничего не происходит.

Я не пойму структурной разницы меж ними нет. Просто один лежит в подпапке проекта( соответственно имеет namespase RibbonPainter.PaintApp ) а другой к корне рядом с MainPage.

Почему 2 вариант не работает?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)