如何在 C# 中使图像可见

Posted

技术标签:

【中文标题】如何在 C# 中使图像可见【英文标题】:How to make image visible in C# 【发布时间】:2014-10-09 11:51:47 【问题描述】:

我在我的 ASP.NET 中声明了一张图片,并在默认情况下使用style="visbility:hidden;" 将其设置为隐藏。无论如何可以从 C# 访问此图像并更改其可见性?这是来自 ASP.NET 的 img 行:

<img src="canoe.png"    id="canoe" style="float:right; margin-right: 100px; visibility:hidden;" />

【问题讨论】:

这是网络表单还是 MVC? img 在客户端运行,C# 在服务器上运行。使用asp:Image Visisble="false" 代替runat="server" 标签。这样你就可以在服务器端访问它。 【参考方案1】:

选项 1 您可以在服务器端通过添加 ID 属性和runat='server' 来更改它。

选项 2 您可以使用 ASP.NET Image 控件并在那里应用您的更改。 &lt;asp:Image id="myimg" runat='server'.../&gt;

但是,如果您使用此选项,您仍然应该使用 CSS/javascript 来显示/隐藏您的图像,因为在服务器端控件上设置 Visible='false' 会阻止 html 完全呈现,我怀疑这是您的输出期待。

如果您在服务器端执行此逻辑,为什么需要将图像渲染为隐藏?如果您根据用户输入显示图像,那么您应该在客户端 Javascript 上进行。

【讨论】:

【参考方案2】:

您需要首先通过添加runat='server' 和一个ID 将它变成一个服务器标签。然后您可以在页面加载之前更改其属性,如下所示:

<IMG ID>.Style["visibility"] = "visible";

替换为您的元素的 ID。

关于其他答案的注意事项: C# Visibility 属性不会更改 CSS 可见性,但实际上会删除或添加元素,如果您在元素仍设置为 visibility: hidden 时简单地更改它,那么 它仍然不可见

Discalimer,这是一个未经测试的解决方案,您可能需要检查使用 Style 属性的语法

【讨论】:

【参考方案3】:

如果只是服务器端来控制图片可见性,就用,

       <asp:Image ID="Image1" runat="server" Visible="false" />

【讨论】:

【参考方案4】:

改用 ASP:Image。

<ASP:Image id="myImage" Visibile="False" ImgUrl="link" runat="server">

然后你可以在后端访问它:

myImage.Visible = true;

【讨论】:

Visible 设置为 false 将阻止 节点完全呈现,而不是像原始 CSS 那样充当占位符。 msdn.microsoft.com/en-us/library/… "如果此属性为 false,则不呈现服务器控件。在组织页面布局时应考虑到这一点。"

以上是关于如何在 C# 中使图像可见的主要内容,如果未能解决你的问题,请参考以下文章

如何在发布版本中使标签不可见[关闭]

如何在 RowsFragment 中使行的标题始终可见

如何在android中使位图不可见? [关闭]

如何在 VueJS DevTools 中使 Vuex “不可见”

如何在 laravel 查询生成器中使隐藏属性可见?

如何在以下面板示例中使所有控件可见