Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2014, 15:23   #1
Stepler415
Пользователь
 
Регистрация: 08.01.2012
Сообщений: 16
По умолчанию Скругление углов формы, компонент выходит за пределы

Здравствуйте, тока тока начал осваивать WPF, стоит задача закруглить углы формы при чем с возможностью задания градуса каждому углу, сделал код ниже. Но проблема в том что компонент
Код HTML:
<Rectangle Fill="CadetBlue" Height="40" Name="Panel" VerticalAlignment="Top" />
Выходит за пределы угла, то есть он не закругляется вместе с формой.
Так же аналогичный компонент находится с низу формы.
Вопрос: Как закруглить форму вместе с компонентами? В независимости от того какой компонент находится в top и buttan.
Код HTML:
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="382" Width="684"
        WindowStyle="None" AllowsTransparency="true"
        Background="Transparent" ResizeMode="CanResizeWithGrip">
    <Border Width="Auto" Height="Auto" Name="windowFrame"
        BorderBrush="#395984"
        BorderThickness="1"
        CornerRadius="0,20,30,40" >
      <Grid>
        <Rectangle Fill="CadetBlue" Height="40" Name="Panel" VerticalAlignment="Top" />
      </Grid>
    </Border>
</Window>
Stepler415 вне форума Ответить с цитированием
Старый 19.09.2014, 16:08   #2
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Если я тебя правильно понял, установи WindowStyle="None" и AllowsTransparency="True" а Border соответственно растяни на всю форму, я про Width="Auto" и Height="Auto", то есть в этом случае наш Border служит нам неким Surface'ом для формы, дальше уже только твоя фантазия решает че мутить..
з.ы. Кстати Border поддерживает закругление тоже как и Rectangle.

Код:
<Window WindowStyle="None" AllowsTransparency="True">
 <Border Width="Auto" Height="Auto" CornerRadius="10"> 
  </...>
 </Border>
</Window>

Последний раз редактировалось coNsept; 19.09.2014 в 16:14.
coNsept вне форума Ответить с цитированием
Старый 19.09.2014, 16:15   #3
Stepler415
Пользователь
 
Регистрация: 08.01.2012
Сообщений: 16
По умолчанию

Цитата:
Сообщение от coNsept Посмотреть сообщение
Если я тебя правильно понял, установи WindowStyle="None" и AllowsTransparency="True" а Border соответственно растяни на всю форму, я про Width="Auto" и Height="Auto".
з.ы. Кстати Border поддерживает закругление тоже как и Rectangle.

Код:
<Window WindowStyle="None" AllowsTransparency="True">
 <Border Width="Auto" Height="Auto" CornerRadius="10"> 
  </...>
 </Border>
</Window>
Ваше решение не работает, мне нужно что у формы можно было закруглять каждый угол индивидуально, мой пример работает он закругляет форму, но панель <Grid> не закругляется вместе с формой, в этом и проблема. Мне нужно что бы <Grid> закруглялся вместе с формой со всеми компонентами которые находятся в <Grid>
Stepler415 вне форума Ответить с цитированием
Старый 19.09.2014, 16:27   #4
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

CornerRadius="5 5 5 5" - закругление каждого угла индивидуально.

з.ы. Я понял что вы имели ввиду.. К сожалению так нельзя сделать, потому как каждый элемент это отдельная сущность.
Вы можете привязать CornerRadius={Binding cornerRadius, Mode=TwoWay} к каждому элементу который поддерживает закругление и которое хотите закруглить.

Последний раз редактировалось coNsept; 19.09.2014 в 16:33.
coNsept вне форума Ответить с цитированием
Старый 19.09.2014, 16:36   #5
Stepler415
Пользователь
 
Регистрация: 08.01.2012
Сообщений: 16
По умолчанию

Цитата:
Сообщение от coNsept Посмотреть сообщение
CornerRadius="5 5 5 5" - закругление каждого угла индивидуально.

з.ы. Я понял что вы имели ввиду.. К сожалению так нельзя сделать, потому как каждый элемент это отдельная сущность.
Вы можете привязать CornerRadius={Binding cornerRadius, Mode=TwoWay} к каждому элементу который поддерживает закругление и которое хотите закруглить.
Понял, как привязать CornerRadius={Binding cornerRadius, Mode=TwoWay} например к <Grid> или другому компоненту который может служить как panel для элементов. Я только с винформ, ещё не разобрался с wpf.
Stepler415 вне форума Ответить с цитированием
Старый 19.09.2014, 16:43   #6
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx

Советую почитать что такое MVVM и как применять его в WPF.
coNsept вне форума Ответить с цитированием
Старый 19.09.2014, 18:20   #7
Stepler415
Пользователь
 
Регистрация: 08.01.2012
Сообщений: 16
По умолчанию

MVVM мне не совсем подходит для моего приложения, нельзя ли сделать методом wpf?
Stepler415 вне форума Ответить с цитированием
Старый 19.09.2014, 19:04   #8
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Я указал вам ссылку а про MVVM это я так совет Вам дал на будущее чтобы не было постов таких как последний, ыы :D
coNsept вне форума Ответить с цитированием
Старый 20.09.2014, 02:11   #9
Stepler415
Пользователь
 
Регистрация: 08.01.2012
Сообщений: 16
По умолчанию

Не фига не понял, мне не нужно биндить кодом. Мне нужно сделать именно на XAML разметки и не как иначе, в код лезу только по событиям. Дабы тока с винформ, и с wpd вообще бумбум, имею предоставление тока html разметки и css на это и оперяюсь при написании XAML. З.Ы Можно пример конкретно моего случая.
Stepler415 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изоражение выходит за пределы панели romanzi Общие вопросы Delphi 1 25.08.2013 12:30
Одно окно не выходит за пределы второго BaronVik C# (си шарп) 1 24.02.2012 19:28
таблица выходит за пределы контейнера MbIJIO HTML и CSS 7 28.05.2011 17:48
Скругление углов таблицы dream1k HTML и CSS 1 09.04.2011 08:35
Сглаживание углов формы. celovec Общие вопросы Delphi 12 10.02.2009 17:44