WPF 窗口背景 ImageBrush 不平铺

2023-12-27

我有一个带有背景图像的窗口。图像可能会在运行时发生变化,这对此并不重要。

我希望图像固定在左上角(确实如此)而不是缩放(这也是正确的)。但是当窗口大于图像时,我需要重复(平铺)图像。我正在做.. 。

我缺少什么?

TIA


您需要设置TileMode http://msdn.microsoft.com/en-us/library/system.windows.media.tilebrush.tilemode.aspx财产以及Viewport and ViewportUnits:

例如:

<Window.Background>
    <ImageBrush ImageSource="myImage.png"
        Viewport="0,0,300,300"
        ViewportUnits="Absolute"
        TileMode="Tile"
        Stretch="None"
        AlignmentX="Left"
        AlignmentY="Top"  />
</Window.Background>

注意:第二个2段Viewport属性指示每次重复的所需大小。如果要显示整个图像,这些应该是图像的宽度和高度。

Example output: tiled magnifiers

编辑回应评论

如果您不知道要在中指定的图像的大小Viewport属性,您可以使用BindingIValueConverter从图像中计算它。我相信一定有一种更好的方法可以做到这一点,但我还没有找到!

XAML:

<Window.Resources>
    <local:Converter x:Key="Converter" />
</Window.Resources>
<Window.Background>

    <ImageBrush ImageSource="myImage.png"
    ViewportUnits="Absolute"
    TileMode="Tile"
    Stretch="None"
    AlignmentX="Left"
    AlignmentY="Top" 
    Viewport="{Binding ImageSource, RelativeSource={RelativeSource Self}, Converter={StaticResource Converter}}"/>
</Window.Background>

值转换器:

public class Converter : IValueConverter
{
    #region IValueConverter Members

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        var source = (ImageSource)value;
        return new Rect(0,0,source.Width, source.Height);
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    #endregion
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 窗口背景 ImageBrush 不平铺 的相关文章

  • WPF 在 .NET Framework 4.0 中的 x64 上启动缓慢

    我注意到 如果我为任何 CPU x64 构建 WPF 应用程序 则与在 x86 上启动 在发布和调试模式下 相比 启动 大约 20 秒 或加载新控件所需的时间要长得多 VS 的内部或外部 即使是最简单的 WPF 应用程序也会出现这种情况 该
  • 后台服务在奥利奥中不起作用

    如果我也杀死应用程序实例 我想在后台运行我的应用程序 但在我杀死我的应用程序后 该服务也停止工作 这是我的代码 请任何人帮助我解决我的问题 我按照此链接在后台运行 但如果删除实例 它就不起作用 如果实例也被删除 谁能告诉我如何运行后台服务
  • C# WPF - 应用程序图标 + ShowInTaskbar = False

    我创建了一个具有以下属性的自定义分层 WPF 窗口 允许透明度 True 在任务栏显示 False 背景 透明 最上面 True 图标 图标 ico 我已在 项目属性 gt 应用程序 选项卡下添加了 Icon ico 如果 ShowInTa
  • 如何重新启动 WPF 应用程序?

    如何从代码重新启动 WPF 应用程序 在 Windows 窗体中存在 Application Restart 但出于某种原因 Microsoft 决定不在 WPF 中添加此方法 我讨厌 WPF 和 Windows 窗体之间的不兼容 喜欢 w
  • CanExecute 何时被调用?

    在演示中 我有一个按钮可以切换布尔字段isAsking 我创建了一个命令 该命令仅在以下情况下执行isAsking true 一旦我按下切换按钮 okButton IsEnable立即更改 这表明该命令发现了更改isAsking 我感到很困
  • 文本框的自定义日期格式

    有关的 将3个文本框绑定在一起 相同的日期时间不同的格式 https stackoverflow com questions 35581427 binding 3 textboxes together same datetime diffe
  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • 如何让窗口最大化时所有控件按比例调整大小?

    当我单击最大化按钮时 窗口最大化 但控件未按比例调整大小 使控件相应调整大小的最佳方法是什么 我正在使用MVVM 这是我的代码
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 如何隐藏 WPF 控件的一部分

    是否可以隐藏 WPF 控件的一部分 NET 4 有一个 DatePicker 它呈现 4 个部分 根据MSDN http msdn microsoft com en us library cc278067 v vs 95 aspx 是否可以
  • C# ObservableCollection OnCollectionChanged 在项目更改时不会触发

    来自 MSDN 关于 OnCollectionChanged 的 内容 在添加 删除 更改 移动项目或刷新整个列表时发生 我正在更改附加到位于我的集合中的 obj 的属性 但 OnCollectionChanged 未触发 我正在 obj
  • 如何动态设置 WPF DataGridCell 样式

    我有一个 DataGrid 其 itemsSource 定义如下 dg ItemsSource new ObservableCollection
  • 通过搜索字符串过滤 CollectionViewSource - 绑定到 itemscontrol (WPF MVVM)

    有没有办法可以过滤CollectionViewSource仅显示游戏ItemsSource哪个 标题 包含 searchString In my PosterView我有这个CVS
  • 来自程序集的资源作为流

    我在 C WPF 应用程序中有一个图像 其构建操作设置为 资源 它只是源目录中的一个文件 尚未通过拖放属性对话框添加到应用程序的资源集合中 我试图将它写成一个流 但尽管尝试了很多点 斜杠 命名空间和看似其他所有内容的变体 但我无法打开它 我
  • KeyEventArgs.Key 到 char

    有没有办法转换WPF的KeyEventArgs Key to Char 我尝试使用KeyInterop var x Char KeyInterop VirtualKeyFromKey e Key 对于数字和字母 它可以正常工作 但对于其他字
  • 将 WPF 属性数据绑定到变量

    我有一个 WPF 4 和 VB net 2010 中的项目 我想将媒体元素的音量属性绑定到另一个模块中的变量 请注意 变量的数据类型正确 因此无需转换 我该怎么做呢 首先 确保您的后台代码实现了 INotifyPropertyChanged
  • 设置用户控件的样式

    我正在尝试为我的用户控件设置样式 UserControl 位于项目 Controls 中 主题位于项目 MainProject 中
  • 如何在WPF ListView中显示时间日志的内容?

    我一直在寻找答案 但我还没有真正找到答案 我知道逻辑 但我只是不知道如何实现它 这是我的时间日志 No Mchn EnNo Name Mode IOMd DateTime 00001 1 00001234 1 0 2004 01 01 01
  • 整个工具提示的背景色

    有谁知道一个简单的 XAML 解决方案来更改整个背景ToolTip 我做了以下事情
  • 帮助我在 xaml 中定义 UI [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 这是我将

随机推荐

  • 如何使用 momentjs 管理每月付款的日期?

    大家好 我已经每周和每两周实施一次 但我需要使用 momentjs 每月实施一次 以满足以下特定要求 可能的付款频率是 每周 每月 每月的同一天 例如3月5日 4月5日 5月5日 对于每月频率 如果某个行项目的开始日期在某些月份中不存在 我
  • PHP - 将 数据作为包含加载是愚蠢的吗

    这可能是一个非常愚蠢的问题 但是加载文件中标签之间的数据并通过 PHP include 加载它是愚蠢的吗 这样可以更轻松地进行编辑 谢谢 不 这不会是愚蠢的 重复代码越少越好
  • HTML 链接尾部斜杠[重复]

    这个问题在这里已经有答案了 The w3学校 http www w3schools com html html links asp文档说 如果子文件夹地址末尾没有斜杠 您可能会向服务器生成两个请求 许多服务器会自动在地址中添加尾部斜杠 然后
  • 在设计数据库时,存储多个真/假值的首选方式是什么?

    如标题中所述 在设计数据库时 处理具有多个列的表的首选方法是什么 这些列仅将真 假值存储为单个或值 例如 Y N 或 0 1 同样 不同数据库 例如 Oracle 和 SQL Server 之间是否可能出现一些问题 这些问题可能会影响列的处
  • R中二项式数据的置信区间?

    我知道我需要 Mean 和 s d 来找到间隔 但是 如果问题是 对随机抽取的 1 000 名工人进行的调查显示 其中 520 名是女性 根据调查为女性工人比例创建 95 的置信区间 我如何找到平均值和标准差 您还可以使用prop test
  • Spring MVC 控制器方法什么时候应该有@ResponseBody?

    我用 ResponseBody使用我的 Spring 控制器进行注释 但我不确定何时使用它 另外 我将我的方法命名为index我想知道这是否重要 我的方法头是 RequestMapping value addproduct method R
  • Ansible 中根据特定值对 dict 进行排序

    我在 Ansible 中将以下字典设置为变量 my users name1 value some value1 id 99 type some type1 name2 value some value2 id 55 type some ty
  • WPF 窗口未关闭

    您能告诉初学者为什么这个小型 WPF 应用程序在 WorkflowTermulated 事件触发后没有按预期关闭吗 使用的工作流程立即终止 使用 WPF 应用程序 Net Framework 3 5 public partial class
  • 在 UITabBar 顶部查看

    Similar to what the Spotify or Apple Music app does when a song is playing it places a custom view on top of the UITabBa
  • 如何使用 Xcode Storyboards 创建 Popover

    如何在 iPad Storyboard 中为 iOS 5 0 应用程序创建弹出框 Xcode 项目模板 实用程序应用程序 已经有了一个设置 但我似乎不明白 Apple 是如何让它工作的 我试图模仿它 但只出现错误 我什至查看了苹果的开发网站
  • 通过 Xaml 将代码隐藏中定义的依赖属性绑定到 UserControl 的 DataContext 中的属性

    我想使用与找到的代码类似的代码here https stackoverflow com questions 2404080 expose usercontrol property to xaml我遇到的问题是我想扩展它以允许使用 XAML
  • Spring Boot上传BootRepackage可执行Jar

    我正在使用 Spring Boot 来开发我的新项目 在我的 build gradle 文件中 我使用 bootRepackage classifier 因此我可以单独生成项目的默认 jar 和使用 Spring Boot 生成的可执行 j
  • 如何处理内存中的Excel文件?

    我正在尝试创建一个 API 它将接受来自客户端的 Excel 文件的表示形式 我希望在处理第一个工作表后返回一个 List gt 作为 JSON 数组 但是 我无法将文件写入磁盘 并且所有处理must happen 在记忆中 有哪些方法可以
  • 确定 connect-msolservice 是否已成功调用

    我正在 PowerShell 中编写 Office 365 辅助工具 并且有一个我认为是简单的问题但找不到答案 我如何判断连接是否由Connect MsolService是否存在且活跃 必须有某种方法可以知道 因为其他 cmdlet 可以检
  • 使用 AWS CLI 通过标签终止 EC2 实例上的一组

    对 AWS 不太熟悉 但是我希望通过按标签名称进行过滤来使用 AWS CLI 终止一组 ec2 实例 如果我使用describe instances I can filter按标签 键 value For terminate instanc
  • 尽管已安装但未找到 Python 模块

    我试图告诉 pandoc 使用用 python 编写的自定义 pandocfilter 我使用的是 MacBook M1 因此安装了 2 7 和自制的 3 9 7 版本的 python 由于某种原因 尽管已正确安装 但未找到 pandocf
  • 匹配一个“.”在java中[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有下面的
  • 我可以在 Android 设备上存储数据以在安装之间保留吗?

    我想以在应用程序安装之间保留少量数据的方式存储少量数据 我显然无法使用 SharedPreferences 因为它们在卸载时会被删除 有没有什么方法可以存储数据 以便在重新安装应用程序后数据仍然存在 我想要存储的数据是一个唯一的 ID 以便
  • PHP 安全性:将 POST 发送到相同的 URL = 不好?

    昨天我收到了有关将 POST 数据发送到同一页面的问题的回复重定向后获取模式 http en wikipedia org wiki Post Redirect Get像这样 if isset POST Submit prevent rese
  • WPF 窗口背景 ImageBrush 不平铺

    我有一个带有背景图像的窗口 图像可能会在运行时发生变化 这对此并不重要 我希望图像固定在左上角 确实如此 而不是缩放 这也是正确的 但是当窗口大于图像时 我需要重复 平铺 图像 我正在做 我缺少什么 TIA 您需要设置TileMode ht