如何在 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 控件并在那里应用您的更改。
<asp:Image id="myimg" runat='server'.../>
但是,如果您使用此选项,您仍然应该使用 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# 中使图像可见的主要内容,如果未能解决你的问题,请参考以下文章