Создание блока текста с Silverlight - PullRequest
0 голосов
/ 20 марта 2012

Все, что я пытаюсь сделать, - создать прямоугольники с радиальными углами и содержимым внутри них. Контентом может быть любое изображение, текстовые данные или мультимедиа, например, http://www.spicynodes.org/., поэтому

  • Как мне создать этот прямоугольник (могу ли я иметь разметку xaml)

  • Могу ли я иметь стрелки из одного прямоугольника в другой, если да, то как?

Ближайшее, что я получил, было ниже, но не удалось добавить текстовые данные

<Grid Name="containerPanel" Width="800" Height="500" Background="AntiqueWhite" VerticalAlignment="Center" HorizontalAlignment="Center">
    <Rectangle Name="centerNode" Width="300" Height="150" RadiusX="12" RadiusY="12" VerticalAlignment="Center">
        <Rectangle.Effect>
            <DropShadowEffect ShadowDepth="3" BlurRadius="2" Color="Black"></DropShadowEffect>
        </Rectangle.Effect>
        <Rectangle.Stroke>
            <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                <GradientStop Color="Gray" Offset="0.1"></GradientStop>
                <GradientStop Color="Beige" Offset="0.2"></GradientStop>
            </LinearGradientBrush>
        </Rectangle.Stroke>
        <Rectangle.StrokeThickness>
            2
        </Rectangle.StrokeThickness>
        <Rectangle.Fill>
            <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
                <GradientStop Color="AliceBlue" Offset="0.4" />
                <GradientStop Color="White" Offset="1.0" />
            </LinearGradientBrush>
        </Rectangle.Fill>
    </Rectangle>

Ответы [ 2 ]

3 голосов
/ 20 марта 2012

Вместо использования Rectangle вы можете использовать контейнерный элемент управления.Предполагая, что содержимое вашего будет состоять из одного элемента (то есть: либо изображение, либо текстовый блок, либо ....), первое, что приходит на ум, будет использовать Border, который будет принимать ровно одинДочерний элемент как его содержимое:

<Border Width="300" Height="200" BorderBrush="Green" BorderThickness="5" CornerRadius="10">
    <Border.Effect>
        <DropShadowEffect ShadowDepth="5"/>
    </Border.Effect>
    <TextBlock Text="Inside the bounding box" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>

Что касается стрелок, переходящих из одного поля в другое: Конечно, это возможно, но вам придется их «соединять» вручную.Не существует встроенной функции «соединить и нарисовать стрелку между этими двумя элементами».

0 голосов
/ 20 марта 2012

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

...