Объединяя изображения в прямоугольник, если я прячу прямоугольник, изображения тоже должны быть скрыты - PullRequest
1 голос
/ 10 января 2012

Я использую прямоугольник и помещаю в него изображения эмоций, и я хочу сделать так: если я сделаю прямоугольник скрытым, изображения эмоций в нем должны быть скрыты.Я прилагаю изображение для помощи в этом.enter image description here

Пожалуйста, дайте мне знать, какое свойство я должен использовать для получения этого, в Windows Forms, если мы используем панель, это можно сделать автоматически.Но в WPF C # это не делается автоматически.

Вот код

<Rectangle Grid.ColumnSpan="2" Height="71" HorizontalAlignment="Left" Margin="226,262,0,0" Name="rectangle2" Stroke="Black" VerticalAlignment="Top" Width="192" Fill="#B5101010" Visibility="Hidden" />
<Image Height="27"  HorizontalAlignment="Left" Margin="229,266,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="28" Source="/WPFTEST;component/Images/emo/emotion_evilgrin.png" MouseUp="image1_MouseUp_1" Visibility="Hidden" />
<Image Height="27" HorizontalAlignment="Left" Margin="264,266,0,0" Name="image2" Source="/WPFTEST;component/Images/emo/emotion_grin.png" Stretch="Fill" VerticalAlignment="Top" Width="28" MouseUp="image2_MouseUp" Visibility="Hidden" />
<Image Height="27" HorizontalAlignment="Left" Margin="34,299,0,0" Name="image4" Source="/WPFTEST;component/Images/emo/emotion_tongue.png" Stretch="Fill" VerticalAlignment="Top" Width="28" Grid.Column="1" MouseUp="image4_MouseUp" Visibility="Hidden" />
<Image Height="27" HorizontalAlignment="Left" Margin="68,266,0,0" Name="image5" Source="/WPFTEST;component/Images/emo/emotion_suprised.png" Stretch="Fill" VerticalAlignment="Top" Width="28" Grid.Column="1" MouseUp="image5_MouseUp" Visibility="Hidden" />
<Image Height="27" HorizontalAlignment="Left" Margin="34,266,0,0" Name="image6" Source="/WPFTEST;component/Images/emo/emotion_smile.png" Stretch="Fill" VerticalAlignment="Top" Width="28" Grid.Column="1" MouseUp="image6_MouseUp" Visibility="Hidden" />
<Image Height="27" HorizontalAlignment="Left" Margin="0,266,0,0" Name="image7" Source="/WPFTEST;component/Images/emo/emotion_happy.png" Stretch="Fill" VerticalAlignment="Top" Width="28" Grid.Column="1" MouseUp="image7_MouseUp" Visibility="Hidden" />
<Image Height="27" HorizontalAlignment="Left" Margin="0,299,0,0" Name="image8" Source="/WPFTEST;component/Images/emo/emotion_wink.png" Stretch="Fill" VerticalAlignment="Top" Width="28" Grid.Column="1" MouseUp="image8_MouseUp" Visibility="Hidden" />
<Image Height="27" HorizontalAlignment="Left" Margin="230,299,0,0" Name="image9" Source="/WPFTEST;component/Images/emo/emotion_unhappy.png" Stretch="Fill" VerticalAlignment="Top" Width="28" MouseUp="image9_MouseUp" Visibility="Hidden" />
<Image Height="27" HorizontalAlignment="Left" Margin="265,299,0,0" Name="image10" Source="/WPFTEST;component/Images/emo/emotion_waii.png" Stretch="Fill" VerticalAlignment="Top" Width="28" MouseUp="image10_MouseUp" Visibility="Hidden" />

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

СпасибоAtif

Ответы [ 2 ]

3 голосов
/ 10 января 2012

Если эти значки являются частью «прямоугольника», который должен быть ItemsControl или какой-либо панелью, значки будут скрываться, если родительский контейнер скрыт (Visibility = Visibility.Hidden/Collapsed).

Редактировать: Изображения не являются частью прямоугольника, они просто помещаются сверху, используя ужасныймаржа злоупотребления кодом.

Между прямоугольником и значками нет никакой связи.Как я уже сказал, значки должны быть добавлены как дочерние элементы контейнера.(например, ItemsControl с WrapPanel как ItemsPanel) Конечно, winforms не будут скрывать значки, если они не являются частью контейнера-владельца...

0 голосов
/ 10 января 2012

Если вы хотите оставить свой код как есть и не нужно изменять эти поля, вы можете просто связать свойство Visibility значков со свойством Visibility прямоугольника.

Visibility = "{Binding Visibility,ElementName = rectangle2} "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...