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


Автор: V0fka 1.8.2013, 14:58
Привет!

Хочу сделать программу, которая бы визуально была похожа на это:

user posted image

В роли "квадратиков" должен быть какой-то элемент управления, который можно перетаскивать по пространству формы, который может реагировать на даблклик, в который внутрь можно поместить контекстное меню и/или кнопку. Подскажите, пожалуйста, в куда смотреть, с чем ознакомиться, чтобы такое сделать?

Автор: dzaraev 1.8.2013, 21:14
Цитата

Контрол в виде окна 

Не понял - где в топике фигурирует окно?


Цитата(V0fka @  1.8.2013,  14:58 Найти цитируемый пост)
В роли "квадратиков" должен быть какой-то элемент управления, который можно перетаскивать по пространству формы, который может реагировать на даблклик, в который внутрь можно поместить контекстное меню и/или кнопку

Насколько я понял - Rectangle, который вы хотели использовать в http://forum.vingrad.ru/forum/topic-370588.html, вам не подошел.
Что ж, в таком случае могу порекомендовать использовать просто http://msdn.microsoft.com/ru-ru/library/system.windows.controls.contentcontrol(v=vs.100).aspx, но со своим http://msdn.microsoft.com/ru-ru/library/system.windows.controls.controltemplate(v=vs.100).aspx, в котором вы можете "нарисовать" ваш "квадратик" как душе угодно, хоть "параллелограммиком"  smile. ContentControl - это такой контрол, который может размещать внутри себя произвольный "контент". Поэтому вы сможете поместить внутрь "квадратика" столько кнопок, сколько хотите, и навесить контекстные меню везде, где нужно (даблклики и пр. плюшки контролов тоже будут). Ваш шаблон ControlTemplate цепляется к вашему ContentControl'y через свойство Template и фактически определяет - как "выглядит" ваш ContentControl. 
Получившийся в результате ContentControl вы можете перемещать по Canvas как тот же Rectangle.
Более подробно о том, как писать свои шаблоны к контролам, можно почитать всё в том же MSDN, если по тем ссылкам, что я уже  дал - прокрутить до "Заметок" и найти там ссылки на соответствующие руководства. 

Автор: V0fka 2.8.2013, 14:00
Цитата(dzaraev @  1.8.2013,  21:14 Найти цитируемый пост)
Не понял - где в топике фигурирует окно?

Я просто так обозвал нужный мне контрол. Я представлял его в виде окна.

dzaraev, прочитал я информацию, на которые вы ссылки дали, спасибо! Почитал ещё инфу. Сделал UserControl такого вида:

Код

<UserControl x:Class="PlanningBoard.Ticket"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">

    <DockPanel LastChildFill="True">
        <Label Name="Title" Content="Заголовок" DockPanel.Dock="Top" Background="#FFD4DAFD"/>
        <TextBox Text="Какие-то буковки" DockPanel.Dock="Bottom" Background="#FFE8FDE7"/>
    </DockPanel>

</UserControl>


Получилось даже его двигать smile . Но вот появилось желание изменять его размер. Т.е. подводим курсор, например, к правой границе, курсор принимает вид "стрелки" и можно зажать мышь и изменить размер. Как такое реализуется?

Автор: V0fka 6.8.2013, 16:08
Я может быть глупость спрашиваю? Так вы, пожалуйста, наставьте на путь истины. smile 

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