Используя Изображение XAML как Фон окна WPF

Будьте очень осторожны при клонировании ArrayLists. Клонирование в Java мелко. Это означает, что только клонирует сам Arraylist и не его участников. Таким образом, если Вы будете иметь ArrayList X1 и клонируете его в X2, то любое изменение в X2 также проявит в X1 и наоборот. Когда Вы клонируетесь, Вы только генерируете новый ArrayList с указателями на те же элементы в оригинале.

7
задан Mitch 23 August 2009 в 22:05
поделиться

2 ответа

Попробуйте это

<Window.Resources>
    <Canvas x:Key="Background2">
        <!-- Ebene 1/<Path> -->
        <Path Fill="#ff000000" Data="F1 M 841.890,595.275 L 0.000,595.275 L 0.000,0.000 L 841.890,0.000 L 841.890,595.275 Z"/>
        <!-- Ebene 1/<Path> -->
        <Path Data="F1 M 265.910,218.277 C 265.910,169.332 223.865,129.655 172.000,129.655 C 120.135,129.655 78.090,169.332 78.090,218.277 C 78.090,267.222 120.135,306.898 172.000,306.898 C 223.865,306.898 265.910,267.222 265.910,218.277 Z">
            <Path.Fill>
                <RadialGradientBrush MappingMode="Absolute"
                           GradientOrigin="172.733,217.234"
                           Center="172.733,217.234"
                           RadiusX="81.912" RadiusY="81.912">
                    <RadialGradientBrush.GradientStops>
                        <GradientStop Offset="0.00" Color="#ff0d4976"/>
                        <GradientStop Offset="0.41" Color="#ff06243b"/>
                        <GradientStop Offset="1.00" Color="#ff000000"/>
                    </RadialGradientBrush.GradientStops>
                    <RadialGradientBrush.Transform>
                        <MatrixTransform 
                             Matrix="1.146,0.000,0.000,1.082,-26.038,-16.750" />
                    </RadialGradientBrush.Transform>
                </RadialGradientBrush>
            </Path.Fill>
        </Path>
    </Canvas>
</Window.Resources>

<Grid >
    <Grid.Background>
        <VisualBrush Stretch="Fill" Visual="{StaticResource Background2}" />
    </Grid.Background>
</Grid>

Вам просто нужно будет внести пару изменений, чтобы переместить ресурс в словарь ресурсов, если это абсолютно необходимо.

5
ответ дан 7 December 2019 в 10:05
поделиться

Многие инструменты, в том числе Illustrator, позволяют экспортировать изображения XAML в различных форматах. Ваша идеальная цель - это ResourceDictionary , который содержит панель Canvas или Grid , содержащую ваше векторное изображение. Затем вы можете ссылаться на словарь в своем окне . Ресурсы и просто добавьте панель изображений (которая представляет собой Canvas или Grid ) на свою панель Window верхнего уровня.

Итак, ваш .XAML-файл изображения должен выглядеть что-то вроде этого:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Canvas x:Name="MyXamlImage">
        ...
    </Canvas>
</ResourceDictionary>

Тогда в вашем Окне должно быть что-то вроде:

<Window x:Class="YourNamespace.YourWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="YourWindow" Height="300" Width="300">
    <Window.Resources>
        <ResourceDictionary Source="MyResourceDictionary.xaml">
    </Window.Resources>
    <Grid>
        <StaticResource ResourceKey="MyXamlImage"/>
        ...
    </Grid>
</Window>
1
ответ дан 7 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: